xerus issueshttps://git.hemio.de/xerus/xerus/-/issues2019-06-17T14:21:52+02:00https://git.hemio.de/xerus/xerus/-/issues/259`HTNetwork::move core` does not work for networks of degree 12019-06-17T14:21:52+02:00Philipp Trunschke`HTNetwork::move core` does not work for networks of degree 1Version 4.0RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/229Add Arpack Installation Description2019-04-12T11:15:37+02:00RoteKekseAdd Arpack Installation Description```
./configure --prefix=<installation-path> F77=gfortran --enable-icb
``````
./configure --prefix=<installation-path> F77=gfortran --enable-icb
```Version 4.0RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/216Add convenience functions for modifying the TensorNetwork graph.2019-02-15T11:43:30+01:00Philipp 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 ...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/172Add TT-Cross Approximation2019-03-04T12:39:27+01:00Sebastian WolfAdd TT-Cross ApproximationVersion XPhilipp TrunschkePhilipp Trunschkehttps://git.hemio.de/xerus/xerus/-/issues/264Adding conda recipe2020-04-29T13:03:54+02:00faysouAdding conda recipeHello,
It would be great if you could add a conda recipe for your project in order to be able to use it in jupyter with Xeus-Cling (https://github.com/jupyter-xeus/xeus-cling).
See this similar request for more details.
https://github...Hello,
It would be great if you could add a conda recipe for your project in order to be able to use it in jupyter with Xeus-Cling (https://github.com/jupyter-xeus/xeus-cling).
See this similar request for more details.
https://github.com/Dobiasd/FunctionalPlus/issues/161
Thank youhttps://git.hemio.de/xerus/xerus/-/issues/79Allow transformations between arbitary TensorNetworks without casting to Full...2019-03-04T14:30:32+01:00Sebastian WolfAllow transformations between arbitary TensorNetworks without casting to FullTensor.Version Xhttps://git.hemio.de/xerus/xerus/-/issues/236Audit Docker2019-06-19T09:35:34+02:00RoteKekseAudit DockerVersion 4.1RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/251Bug with fenics and mkl2019-04-10T15:29:08+02:00Philipp TrunschkeBug with fenics and mkl```
OS: openSUSE Leap 42.3
MKL Info:
Major version: 2019
Minor version: 0
Update version: 1
Product status: Product
Build: 20180928
Platform: Intel(R) 64 architectur...```
OS: openSUSE Leap 42.3
MKL Info:
Major version: 2019
Minor version: 0
Update version: 1
Product status: Product
Build: 20180928
Platform: Intel(R) 64 architecture
Processor optimization: Intel(R) Advanced Vector Extensions (Intel(R) AVX) enabled processors
================================================================
```
[Working example is attached.](/uploads/657409540901107570a60a2d1a340483/xerus___dolfin___libmkl___buggy.py)Version 4.0https://git.hemio.de/xerus/xerus/-/issues/239Changelog update2019-03-20T12:24:01+01:00RoteKekseChangelog updateVersion 4.0https://git.hemio.de/xerus/xerus/-/issues/40coding conventions & instructions on how to create a pull request2019-04-01T02:36:43+02:00Fuchsi*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/205compilation errors on MacOS2018-05-12T09:56:25+02:00Fuchsi*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 s...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/260deprecate Python 2.72019-06-18T16:46:30+02:00Philipp Trunschkedeprecate Python 2.7Python 2.7 will not be maintained past 2020.
We should consider stopping to maintain bindings and tests for old python versions.Python 2.7 will not be maintained past 2020.
We should consider stopping to maintain bindings and tests for old python versions.https://git.hemio.de/xerus/xerus/-/issues/48doxygen modern layout2018-04-23T03:03:35+02:00Fuchsi*doxygen modern layoutVersion XFuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/244dropping support for GCC 4.8 and below2019-03-23T18:25:11+01:00Fuchsi*dropping support for GCC 4.8 and belowanother point of discussion:
- with commit 8d55ef3e I broke compatibility with GCC 4.8.1 and below (which will once again show an internal segfault during compilation) for better readability esp. of typedefs for function pointers. (this ...another point of discussion:
- with commit 8d55ef3e I broke compatibility with GCC 4.8.1 and below (which will once again show an internal segfault during compilation) for better readability esp. of typedefs for function pointers. (this could be circumvented by reverting the two using declarations inside the Tensor class)
- the warnings about deprecated function will only work with GCC >= 4.9
- GCC 4.9 was released 5 years ago next month. even debian oldstable uses it as the default - so the need to support even older compilers seems to be rather low imho.Version 4.0https://git.hemio.de/xerus/xerus/-/issues/268Fancy callstacks cause memory leaks2021-06-08T22:29:46+02:00Sebastian WolfFancy callstacks cause memory leaksCan be reproduced by with Valgrind or by compiling XerusTest with address sanitizer and running
```
$ ASAN_OPTIONS=alloc_dealloc_mismatch=0 ./XerusTest Tensor:triple_indices
##############################################################...Can be reproduced by with Valgrind or by compiling XerusTest with address sanitizer and running
```
$ ASAN_OPTIONS=alloc_dealloc_mismatch=0 ./XerusTest Tensor:triple_indices
###############################################################################
# unit-testing #
###############################################################################
| Tensor:triple_indices starting: ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
| Tensor:triple_indices: passed! (83.552 ms)
|
|
| total summary 1 of 1 passed
-------------------------------------------------------------------------------
|
| Total time elapsed: 83.639 ms
-------------------------------------------------------------------------------
=================================================================
==47735==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 5415540 byte(s) in 31 object(s) allocated from:
#0 0x7ff33cdd193f in __interceptor_malloc (/lib64/libasan.so.6+0xae93f)
#1 0x1088be5 in bfd_malloc /builddir/build/BUILD/binutils-2.35.1/bfd/libbfd.c:275
Direct leak of 526 byte(s) in 9 object(s) allocated from:
#0 0x7ff33cd7c967 in strdup (/lib64/libasan.so.6+0x59967)
#1 0x10d7b6a in scan_unit_for_symbols dwarf2.c:3530
#2 0x10d7b6a in comp_unit_maybe_decode_line_info dwarf2.c:3946
#3 0x10d7b6a in comp_unit_maybe_decode_line_info dwarf2.c:3924
SUMMARY: AddressSanitizer: 5416066 byte(s) leaked in 40 allocation(s).
```https://git.hemio.de/xerus/xerus/-/issues/38flop counts of all operations to better be able to compare algorithms2018-04-01T13:07:03+02:00Fuchsi*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 Xhttps://git.hemio.de/xerus/xerus/-/issues/55get rid of lapacke dependency2020-04-29T21:00:47+02:00Fuchsi*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 unnece...The 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/252Getting "munmap_chunk(): invalid pointer" in test when compiled with mkl and ...2019-07-03T10:34:18+02:00lljbashGetting "munmap_chunk(): invalid pointer" in test when compiled with mkl and "Intel MKL ERROR: Parameter 10 was incorrect on entry to DGESDD" when computing SVD```
###############################################################################
# Unit Tests #
# Xerus version: v3.0.1-315-g47ed838 ...```
###############################################################################
# Unit Tests #
# Xerus version: v3.0.1-315-g47ed838 #
###############################################################################
-------------------------------------------------------------------------------
| ALS
|
| decomposition_als starting: *** Error in `./XerusTest': munmap_chunk(): invalid pointer: 0x00000000014d7000 ***
make: *** [test] Aborted
```
```
OS: ubuntu 14.04
mkl versoin: 2018
compiler: gcc-8 / icpc
```
linked as what Intel® Math Kernel Library Link Line Advisor suggests. Same on the master branch.
My program works well in the master branch in spite of this. However, on the development branch it gives me
```
Intel MKL ERROR: Parameter 10 was incorrect on entry to DGESDD.
terminate called after throwing an instance of 'xerus::misc::generic_error'
what(): src/xerus/blasLapackWrapper.cpp:227: error invoked:
info == 0 failed msg: work array size query of dgesdd returned -10
callstack:
[0x00007f12f47cc253 .text] /home/***/xerus/src/xerus/blasLapackWrapper.cpp:227 (inside xerus::blasWrapper::dgesdd_get_workarray_size(int, int))
[0x00007f12f47d0833 .text] /home/***/xerus/src/xerus/blasLapackWrapper.cpp:254 (inside xerus::blasWrapper::svd_destructive(double*, double*, double*, double*, unsigned long, unsigned long))
[0x00007f12f47d118b .text] /home/***/xerus/src/xerus/blasLapackWrapper.cpp:217 (inside xerus::blasWrapper::svd(double*, double*, double*, double const*, unsigned long, unsigned long))
[0x00007f12f487c42b .text] /home/***/xerus/src/xerus/tensor.cpp:1474 (inside xerus::calculate_svd(xerus::Tensor&, xerus::Tensor&, xerus::Tensor&, xerus::Tensor, unsigned long, unsigned long, double))
/* more */
exception thrown in function: dgesdd_get_workarray_size (src/xerus/blasLapackWrapper.cpp : 227)
```
which I believe is caused by 43371e43.https://git.hemio.de/xerus/xerus/-/issues/267How to load pickled xerus objects in C++?2020-12-04T14:38:31+01:00Philipp TrunschkeHow to load pickled xerus objects in C++?This should be possible since pickle uses `xerus::misc::serialize` to serialize the object.
However, I am not sure how to get to the data. For a simple tensor the following seems to work (pseudo code in python):
```
def load_pickled(file...This should be possible since pickle uses `xerus::misc::serialize` to serialize the object.
However, I am not sure how to get to the data. For a simple tensor the following seems to work (pseudo code in python):
```
def load_pickled(fileName):
with open(fileName, 'rb') as f:
bytes = f.read()
headerLength = bytes.index("Xerus xerus::")
return xerus.deserialize(bytes[headerLength:])
```https://git.hemio.de/xerus/xerus/-/issues/194improve speed of Ax=b solve operations for matrices2017-05-09T16:42:09+02:00Fuchsi*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 Hermi...perform 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 X