xerus issueshttps://git.hemio.de/xerus/xerus/-/issues2019-04-03T18:56:07+02:00https://git.hemio.de/xerus/xerus/-/issues/188Tensor access not thread save2019-04-03T18:56:07+02:00Sebastian WolfTensor access not thread saveContrary to intuition, accessing entries as `A[i] = someValue` for disjoint sets of `i`s is not thread safe!Contrary to intuition, accessing entries as `A[i] = someValue` for disjoint sets of `i`s is not thread safe!Version 3.0https://git.hemio.de/xerus/xerus/-/issues/187renaming elements -> entries2017-03-28T21:55:56+02:00Fuchsi*renaming elements -> entriesfor consistency with the other functions, modify_diagonal_elements etc. should be named ..._entriesfor consistency with the other functions, modify_diagonal_elements etc. should be named ..._entriesVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/185improve creation of random orthogonal matrices / tensors2017-03-28T21:55:56+02:00Fuchsi*improve creation of random orthogonal matrices / tensorsusing a QR on a i.i.d. gaussian random matrix will only create orthogonal matrices distributed according to the haar measure if the diagonal entries of the upper-triangular matrix are normalized (eg. all positive). for the lapack call dg...using a QR on a i.i.d. gaussian random matrix will only create orthogonal matrices distributed according to the haar measure if the diagonal entries of the upper-triangular matrix are normalized (eg. all positive). for the lapack call dgeqrf that we use so far this is not the case.Version 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/184pyton wrapper broken by changes in measurement sets2017-03-28T21:55:56+02:00Fuchsi*pyton wrapper broken by changes in measurement setsVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/183Use the new thread local mersenne twister2017-03-28T21:55:56+02:00Sebastian WolfUse the new thread local mersenne twisterEither as default or only engine for random functions and for all testcases.Either as default or only engine for random functions and for all testcases.Version 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/182reduce namespace pollution2017-03-28T21:55:56+02:00Fuchsi*reduce namespace pollution- [x] VLA
- [x] CHECK, IF_CHECK, etc., REQUIRE
- [x] LOG, SET_LOGGING, rename XERUS_logFlag to xerus::misc::internal::LogFlag
- [x] ALLOW_MOVE ?
- [x] likely, unlikely !!!
- [x] \_inline\_, \_const\_, etc.
- [x] TEST_
- [x] TEST(), PRINT...- [x] VLA
- [x] CHECK, IF_CHECK, etc., REQUIRE
- [x] LOG, SET_LOGGING, rename XERUS_logFlag to xerus::misc::internal::LogFlag
- [x] ALLOW_MOVE ?
- [x] likely, unlikely !!!
- [x] \_inline\_, \_const\_, etc.
- [x] TEST_
- [x] TEST(), PRINTCHECK, PRINTFAIL, PASTE
- [x] std::hash\<std::pair\<\>\>, iterator + size_t, container | container
- [x] std::ostream << containerVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/181redefine member methods as external functions2017-03-28T21:55:56+02:00Fuchsi*redefine member methods as external functions- [x] TN::measure
- [x] TT::dyadic_product
- [x] TT::entrywise_square
- [x] TT::find_largest_entry- [x] TN::measure
- [x] TT::dyadic_product
- [x] TT::entrywise_square
- [x] TT::find_largest_entryVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/180measurementset named constructors2017-03-28T21:55:56+02:00Fuchsi*measurementset named constructorsmeasSet::random with callback that defines the measured value
::random with tensor object that is measured to define the measured values vectormeasSet::random with callback that defines the measured value
::random with tensor object that is measured to define the measured values vectorVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/179TT::kronecker and TT::dirac named constructors2017-03-28T21:55:56+02:00Fuchsi*TT::kronecker and TT::dirac named constructorsVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/178timestamp of log msg is from before the execution of whatever is printed2017-03-28T21:55:56+02:00Fuchsi*timestamp of log msg is from before the execution of whatever is printedVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/177error.log is always created2017-03-28T21:55:56+02:00Fuchsi*error.log is always createdmaybe we should remove the feature of streaming the log to a file altogether. same thing can be achieved by calling the application with "./foo 2>error.log"maybe we should remove the feature of streaming the log to a file altogether. same thing can be achieved by calling the application with "./foo 2>error.log"Version 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/176Exception in test cases with -D_GLIBCXX_DEBUG active2017-03-28T21:55:56+02:00Sebastian WolfException in test cases with -D_GLIBCXX_DEBUG active```
| resize_dimension starting: /usr/include/c++/5.3.1/bits/random.h:1683: std::uniform_int_distribution<_IntType>::param_type::param_type(_IntType, _IntType) [with _IntType = long unsigned int]: Assertion '_M_a <= _M_b' failed.
``````
| resize_dimension starting: /usr/include/c++/5.3.1/bits/random.h:1683: std::uniform_int_distribution<_IntType>::param_type::param_type(_IntType, _IntType) [with _IntType = long unsigned int]: Assertion '_M_a <= _M_b' failed.
```Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/175Testcases fail without runtime checks2017-03-28T21:55:56+02:00Sebastian WolfTestcases fail without runtime checks```
> | fix_slate starting: ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ terminate called after throwing an instance of 'xerus::misc::generic_error'
> what(): signal 8 = Floating point exceptioncallstack:
> [0x00000000007d3dfa .text] ??:...```
> | fix_slate starting: ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ terminate called after throwing an instance of 'xerus::misc::generic_error'
> what(): signal 8 = Floating point exceptioncallstack:
> [0x00000000007d3dfa .text] ??:? (inside xerus::misc::internal::catch_signals(int))
[0x00007f20747b6ab0 .text] sigaction.c:0 (inside __restore_rt)
[0x0000000000783ddd .text] ??:? (inside xerus::internal::CholmodSparse::CholmodSparse(std::map<unsigned long, double, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, double> > > const&, unsigned long, unsigned long, bool))
[0x0000000000785ada .text] ??:? (inside xerus::internal::CholmodSparse::matrix_matrix_product(std::map<unsigned long, double, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, double> > >&, unsigned long, unsigned long, double, std::map<unsigned long, double, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, double> > > const&, bool, unsigned long, std::map<unsigned long, double, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, double> > > const&, bool))
[0x000000000076e066 .text] ??:? (inside xerus::contract(xerus::Tensor&, xerus::Tensor const&, bool, xerus::Tensor const&, bool, unsigned long))
[0x00000000007ab888 .text] ??:? (inside xerus::TensorNetwork::contract(unsigned long, unsigned long))
[0x00000000007ac57c .text] ??:? (inside xerus::TensorNetwork::contract(std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> > const&))
[0x00000000007ac857 .text] ??:? (inside xerus::TensorNetwork::contract_unconnected_subnetworks())
[0x00000000007a25e4 .text] ??:? (inside xerus::internal::operator*(xerus::internal::IndexedTensorMoveable<xerus::TensorNetwork>&&, xerus::internal::IndexedTensorMoveable<xerus::TensorNetwork>&&))
[0x00000000005a3236 .text] consistency.cxx:0 (inside {lambda()#4}::operator()() const [clone .isra.178])
[0x00000000007d25fe .text] ??:? (inside xerus::misc::internal::test(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void ()> > const&))
[0x00000000004126a4 .text] ??:? (inside main)
[0x00007f20747a2580 .text] ??:? (inside __libc_start_main +0x240)
[0x00000000004133b9 .text] ??:? (inside _start)
exception thrown in function: catch_signals (src/xerus/misc/test.cpp : 152)
```Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/174create separate library objects2017-03-28T21:55:56+02:00Fuchsi*create separate library objectse.g. libxerus.so, libxerus_misc.so, xerus.so (containing only the python bindings)e.g. libxerus.so, libxerus_misc.so, xerus.so (containing only the python bindings)Version 3.0https://git.hemio.de/xerus/xerus/-/issues/171improve selection of severity of errors2017-03-28T21:55:56+02:00Fuchsi*improve selection of severity of errorsa typical error (ie. user / usage error) should be an "error" (but still throw an exception)
critical error as internal error
fatal as errors that we cannot recover froma typical error (ie. user / usage error) should be an "error" (but still throw an exception)
critical error as internal error
fatal as errors that we cannot recover fromVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/170use boost instead of misc functions where appropriate2017-03-28T21:55:56+02:00Fuchsi*use boost instead of misc functions where appropriatethis might be appropriate for
- [ ] misc::product
- strings:
- [ ] misc::explode by boost::split
- [ ] misc::trim by boost::trimthis might be appropriate for
- [ ] misc::product
- strings:
- [ ] misc::explode by boost::split
- [ ] misc::trim by boost::trimVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/169replace allocator may use one past the end index2017-03-28T21:55:56+02:00Fuchsi*replace allocator may use one past the end indexin line 78 of allocator.cpp
````
if (xm::astore.buckets[numBucket].empty()) {
````in line 78 of allocator.cpp
````
if (xm::astore.buckets[numBucket].empty()) {
````Version 2.3Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/168LOG_ABSOLUTE_TIME not compatible to GCC 4.92017-03-28T21:55:56+02:00Fuchsi*LOG_ABSOLUTE_TIME not compatible to GCC 4.9std::put_time was only added in GCC 5.0 -> we need to find another solution (likely some ugly c functions - dig in git to check what we used before put_time?)std::put_time was only added in GCC 5.0 -> we need to find another solution (likely some ugly c functions - dig in git to check what we used before put_time?)Version 2.3Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/167Pipe operator of xerus::misc::generic_error destroys type information.2017-03-28T21:55:56+02:00Sebastian WolfPipe operator of xerus::misc::generic_error destroys type information.The pipe operator returns an object of type generic_error&, apparently this disallows a catch statement to determine any specialized objects.The pipe operator returns an object of type generic_error&, apparently this disallows a catch statement to determine any specialized objects.Version 2.3https://git.hemio.de/xerus/xerus/-/issues/166stringstream.clear in log buffer problematic?2019-04-03T18:51:01+02:00Fuchsi*stringstream.clear in log buffer problematic?does .clear() empty the memory? needs testing (maybe revert back to pointers?)does .clear() empty the memory? needs testing (maybe revert back to pointers?)https://git.hemio.de/xerus/xerus/-/issues/234File Utilities Documentation2019-03-24T04:02:14+01:00RoteKekseFile Utilities DocumentationVersion 4.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/201calling ALS(A, x, x) results in strange behaviour2019-03-24T04:13:23+01:00Fuchsi*calling ALS(A, x, x) results in strange behaviourshould either print an error or better yet: create a local copy of x as rhs.should either print an error or better yet: create a local copy of x as rhs.Version 4.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/227Use the 4.0 release to rename Tensor.degree to Tensor.order ?2019-03-24T14:10:06+01:00Sebastian WolfUse the 4.0 release to rename Tensor.degree to Tensor.order ?The naming of `Tensor.degree` is mainly for historical reasons, as the most widely used term for the number of modes of a tensor is "order" and not "degree". Maybe we should use the 4.0 release to change the term accordingly?The naming of `Tensor.degree` is mainly for historical reasons, as the most widely used term for the number of modes of a tensor is "order" and not "degree". Maybe we should use the 4.0 release to change the term accordingly?Version 4.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/195Import randomized SVD2017-11-21T14:00:39+01:00Sebastian WolfImport randomized SVDCurrently available in PlaygoundCurrently available in PlaygoundVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/196either remove or improve xals2017-05-27T19:15:02+02:00Fuchsi*either remove or improve xalsat the moment it still needs some improvements to be part of a stable release:
- [ ] configurable number of iterations
- [ ] modifiable end criterion?
- [ ] perfdataat the moment it still needs some improvements to be part of a stable release:
- [ ] configurable number of iterations
- [ ] modifiable end criterion?
- [ ] perfdataVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/197premature deallocation of temporary tensors in python2017-05-23T00:53:41+02:00Fuchsi*premature deallocation of temporary tensors in pythonindexing a temporary tensor leads to invalid memory access. the lifetime of the tensor likely has to be bound to the lifetime of the resulting indexed tensor somehow...
eg.
~~~ python
xe.frob_norm(xe.Tensor.identity({10,10})(i&0))
~~~indexing a temporary tensor leads to invalid memory access. the lifetime of the tensor likely has to be bound to the lifetime of the resulting indexed tensor somehow...
eg.
~~~ python
xe.frob_norm(xe.Tensor.identity({10,10})(i&0))
~~~Version 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/198libxerus_misc.a is falsy build with -lcholmod etc.2017-05-22T16:15:43+02:00Fuchsi*libxerus_misc.a is falsy build with -lcholmod etc.Version 3.0https://git.hemio.de/xerus/xerus/-/issues/199export exceptions to python2017-05-23T13:08:29+02:00Fuchsi*export exceptions to pythonVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/200TTNetwork should _have_ a TensorNetwork and not _be_ one2019-04-03T18:51:38+02:00Fuchsi*TTNetwork should _have_ a TensorNetwork and not _be_ oneAs we don't really want to expose the TN functionality (that will only break the constraints of the TT classes) unless the object is cast to TensorNetwork... Defining a cast operator to TN should still allow to use it in indexed equation...As we don't really want to expose the TN functionality (that will only break the constraints of the TT classes) unless the object is cast to TensorNetwork... Defining a cast operator to TN should still allow to use it in indexed equations etc. just like we can to right now.https://git.hemio.de/xerus/xerus/-/issues/165missing move semantincs for stringstream in GCC 4.8 and 4.92017-05-29T23:27:28+02:00Fuchsi*missing move semantincs for stringstream in GCC 4.8 and 4.9````
src/xerus/misc/namedLogger.cpp: In function ‘void xerus::misc::internal::buffer::checkSwitch()’:
src/xerus/misc/namedLogger.cpp:53:12: error: use of deleted function ‘std::basic_stringstream<char>& std::basic_stringstream<char>::o...````
src/xerus/misc/namedLogger.cpp: In function ‘void xerus::misc::internal::buffer::checkSwitch()’:
src/xerus/misc/namedLogger.cpp:53:12: error: use of deleted function ‘std::basic_stringstream<char>& std::basic_stringstream<char>::operator=(const std::basic_stringstream<char>&)’
old = std::move(current);
^
In file included from include/xerus/misc/namedLogger.h:30:0,
from src/xerus/misc/namedLogger.cpp:31:
/net/site-local.linux64/gcc/4.9.3/include/c++/4.9.3/sstream:502:11: note: ‘std::basic_stringstream<char>& std::basic_stringstream<char>::operator=(const std::basic_stringstream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
class basic_stringstream : public basic_iostream<_CharT, _Traits>
^
/net/site-local.linux64/gcc/4.9.3/include/c++/4.9.3/sstream:502:11: error: use of deleted function ‘std::basic_iostream<char>& std::basic_iostream<char>::operator=(const std::basic_iostream<char>&)’
In file included from /net/site-local.linux64/gcc/4.9.3/include/c++/4.9.3/sstream:38:0,
from include/xerus/misc/namedLogger.h:30,
from src/xerus/misc/namedLogger.cpp:31:
/net/site-local.linux64/gcc/4.9.3/include/c++/4.9.3/istream:795:11: note: ‘std::basic_iostream<char>& std::basic_iostream<char>::operator=(const std::basic_iostream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
class basic_iostream
^
/net/site-local.linux64/gcc/4.9.3/include/c++/4.9.3/istream:795:11: error: use of deleted function ‘std::basic_istream<char>& std::basic_istream<char>::operator=(const std::basic_istream<char>&)’
compilation terminated due to -fmax-errors=3.
````Version 2.3Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/164operator+ in namespace std causing errors2017-05-29T23:27:28+02:00Fuchsi*operator+ in namespace std causing errors````
In file included from src/xerus/performanceData.cpp:27:
In file included from include/xerus/ttNetwork.h:28:
include/xerus/misc/containerSupport.h:226:15: error: overloaded 'operator+' must have at least one parameter of class or ...````
In file included from src/xerus/performanceData.cpp:27:
In file included from include/xerus/ttNetwork.h:28:
include/xerus/misc/containerSupport.h:226:15: error: overloaded 'operator+' must have at least one parameter of class or enumeration type
IteratorType operator+(const IteratorType& _iterator, const size_t _add) {
^
include/xerus/misc/containerSupport.h:226:15: note: in instantiation of function template specialization 'std::operator+<const char *, true>' requested here
IteratorType operator+(const IteratorType& _iterator, const size_t _add) {
^
````
Version 2.3Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/163load_from_file as (static) member function...2017-05-29T23:27:28+02:00Sebastian Wolfload_from_file as (static) member function...Having load_from_file as a static member function of Tensor(Network) has the nasty consquence that
Tensor A;
A.load_from_file("whatever.dat");
compiles and runs without any errors, leading to annoying bug tracking. Would b...Having load_from_file as a static member function of Tensor(Network) has the nasty consquence that
Tensor A;
A.load_from_file("whatever.dat");
compiles and runs without any errors, leading to annoying bug tracking. Would be nice to find a solution before 2.3 is released.Version 2.3https://git.hemio.de/xerus/xerus/-/issues/162Use the term 'mode' to refer to the modes of a Tensor.2017-05-29T23:27:28+02:00Sebastian WolfUse the term 'mode' to refer to the modes of a Tensor.This should avoid name collisions and ambiguities when mixing terms like mode, index, dimension, slate...This should avoid name collisions and ambiguities when mixing terms like mode, index, dimension, slate...Version 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/161name collision: different meanings of "slate" in fix_slate and remove_slate2017-05-29T23:27:28+02:00Fuchsi*name collision: different meanings of "slate" in fix_slate and remove_slateVersion 2.2https://git.hemio.de/xerus/xerus/-/issues/160TTNetwork constructor from dimension vector missing2017-05-29T23:27:28+02:00Fuchsi*TTNetwork constructor from dimension vector missingprobably got lost when TTNetwork was rewrittenprobably got lost when TTNetwork was rewrittenVersion 2.2https://git.hemio.de/xerus/xerus/-/issues/159Automatic Doxygen generation does not work2017-05-29T23:27:28+02:00Sebastian WolfAutomatic Doxygen generation does not workVersion 2.2Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/158TTStacks usefull at all?2017-05-29T23:27:28+02:00Sebastian WolfTTStacks usefull at all?One the one hand the advantage of the lazy evaluation of TTStacks only shows up for more than one Operator and increases with the number of the operators.
On the other hand the (current) lazy evaluation forces the contraction of all ...One the one hand the advantage of the lazy evaluation of TTStacks only shows up for more than one Operator and increases with the number of the operators.
On the other hand the (current) lazy evaluation forces the contraction of all nodes in a row, leading to an escalation of the ranks. In particular the ranks near the ends of the TTTensor usually largely exceed the maximal possible rank.
Directly applying the contraction for each operator would allow recanonicalization and thereby a significant rank reduction at the ends and possibly also at the other positions (at least some minimal tests suggest so).
There it is doubtful whether the use of TTStacks is useful. Version 3.0https://git.hemio.de/xerus/xerus/-/issues/157TTNetworks, in particular TTStacks::contract_stack, does not work with degree...2017-05-29T23:27:28+02:00Sebastian WolfTTNetworks, in particular TTStacks::contract_stack, does not work with degree zero Tensors.See test TT:fix_slate
See test TT:fix_slate
Version 2.1https://git.hemio.de/xerus/xerus/-/issues/156Support for fixed indices in TensorNetworks2017-05-29T23:27:28+02:00Sebastian WolfSupport for fixed indices in TensorNetworksVersion 2.2Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/155reshuffeling indices in v2.0 results in wrong index order2017-05-29T23:27:28+02:00Fuchsi*reshuffeling indices in v2.0 results in wrong index orderVersion 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/154missing operator Tensor = TensorNetwork2017-05-29T23:27:28+02:00Fuchsi*missing operator Tensor = TensorNetwork````
error: no match for ‘operator=’ (operand types are ‘xerus::Tensor’ and ‘xerus::TensorNetwork’)
````````
error: no match for ‘operator=’ (operand types are ‘xerus::Tensor’ and ‘xerus::TensorNetwork’)
````Version 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/153Build #67 : Selection of Clang fails, because CXX is usually set as enviromen...2017-05-29T23:27:28+02:00Sebastian WolfBuild #67 : Selection of Clang fails, because CXX is usually set as enviroment variable.Version 2.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/152solve operator / for sparse tensors2017-05-29T23:27:28+02:00Fuchsi*solve operator / for sparse tensorsVersion 2.2https://git.hemio.de/xerus/xerus/-/issues/151sparse SVD in TTNetwork(tensor) constructor2017-05-29T23:27:28+02:00Fuchsi*sparse SVD in TTNetwork(tensor) constructorVersion 2.0https://git.hemio.de/xerus/xerus/-/issues/150entrywise_square and entrywise_product for TTTensors with sparse components2017-05-29T23:27:29+02:00Fuchsi*entrywise_square and entrywise_product for TTTensors with sparse componentsVersion 2.2Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/149sum of TTTensors with sparse component tensors2017-05-29T23:27:29+02:00Fuchsi*sum of TTTensors with sparse component tensorsVersion 2.2Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/148a force_sparse and force_dense option for tensors2017-05-29T23:27:29+02:00Fuchsi*a force_sparse and force_dense option for tensorsVersion 3.0https://git.hemio.de/xerus/xerus/-/issues/146test coverage ends in double free when used with openmp2017-05-29T23:27:29+02:00Fuchsi*test coverage ends in double free when used with openmpVersion 2.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/145product of ttoperators not recognized as ttoperator in v2.02017-05-29T23:27:29+02:00Fuchsi*product of ttoperators not recognized as ttoperator in v2.0````
| product starting: +00:02:25,248 ttNetwork.cpp :1608 : warning: _other.tensorObjectReadOnly->nodes.size() <= 1 failed msg: Assigning a general tensor network to TTOperator not yet implemented. casting to fullTensor first
...````
| product starting: +00:02:25,248 ttNetwork.cpp :1608 : warning: _other.tensorObjectReadOnly->nodes.size() <= 1 failed msg: Assigning a general tensor network to TTOperator not yet implemented. casting to fullTensor first
✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
| product: passed! (47.851 ms)
````
should pass without warningVersion 2.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/144v2.0-dev does not compile with clang++2017-05-29T23:27:29+02:00Fuchsi*v2.0-dev does not compile with clang++````
In file included from src/xerus/performanceData.cpp:27:
include/xerus/ttNetwork.h:356:10: error: variable has incomplete type 'xerus::Index'
Index i,r,l,j;
^
include/xerus/i...````
In file included from src/xerus/performanceData.cpp:27:
include/xerus/ttNetwork.h:356:10: error: variable has incomplete type 'xerus::Index'
Index i,r,l,j;
^
include/xerus/indexedTensorReadOnly.h:32:8: note: forward declaration of 'xerus::Index'
class Index;
^
In file included from src/xerus/performanceData.cpp:27:
include/xerus/ttNetwork.h:356:12: error: variable has incomplete type 'xerus::Index'
Index i,r,l,j;
^
include/xerus/indexedTensorReadOnly.h:32:8: note: forward declaration of 'xerus::Index'
class Index;
^
In file included from src/xerus/performanceData.cpp:27:
include/xerus/ttNetwork.h:356:14: error: variable has incomplete type 'xerus::Index'
Index i,r,l,j;
^
include/xerus/indexedTensorReadOnly.h:32:8: note: forward declaration of 'xerus::Index'
class Index;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
````Version 2.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/143Tensor Post check sparsity2017-05-29T23:27:29+02:00Sebastian WolfTensor Post check sparsityVersion 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/142Xerus fails to compile using C++142017-05-29T23:27:29+02:00Sebastian WolfXerus fails to compile using C++14Version 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/141Failing Failtests don't provide sufficent information.2017-05-29T23:27:29+02:00Sebastian WolfFailing Failtests don't provide sufficent information.Version 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/140TensorNetwork fix_slate also callable by TTNetworks, without returning a vali...2017-05-29T23:27:29+02:00Sebastian WolfTensorNetwork fix_slate also callable by TTNetworks, without returning a valid TTNetwork.The TensorNetwork implementation of fix_slate does not preserve the TTNetwork format.The TensorNetwork implementation of fix_slate does not preserve the TTNetwork format.Version 1.5https://git.hemio.de/xerus/xerus/-/issues/139Move operations and definition of "Valid state" for Tensor/FullTensor/SparseT...2017-05-29T23:27:29+02:00Sebastian WolfMove operations and definition of "Valid state" for Tensor/FullTensor/SparseTensorAs of now our definition of a valid state of a FullTensor is that it is that all variables are consistent. I.e. size is the product of dimensions, the data pointer points to an array of size `size` and the factor is a valid value (not in...As of now our definition of a valid state of a FullTensor is that it is that all variables are consistent. I.e. size is the product of dimensions, the data pointer points to an array of size `size` and the factor is a valid value (not inf,...).
Following the design of the C++ std lib move operations should leave the object in question in such a valid state. Currently this is NOT fulfilled by our move-operations. In particular the FullTensor move constructors use the Tensor move constructors which do not preserve the consistency between size and dimensions and also do not leave the data pointer in a consistent state.
Therefore I would suggest to either:
- Weaken the definition of valid state for FullTensor/Tensor/SparseTensor to allow such inconsistencies and require a call to reset before the object can be used again.
- Or remove the move-operations for FullTensor/Tensor/SparseTensor altogether as a rigorous implementation of the current definition does not allow any gains compared to the non-move operations.Version 1.5https://git.hemio.de/xerus/xerus/-/issues/138Move core should go two ways if not cannoicalized.2017-05-29T23:27:29+02:00Sebastian WolfMove core should go two ways if not cannoicalized.Prevents more than maximal ranksPrevents more than maximal ranksVersion 1.5https://git.hemio.de/xerus/xerus/-/issues/137Correct and beautify QC Lapacke wrapper and xerus QC factorisation.2017-05-29T23:27:29+02:00Sebastian WolfCorrect and beautify QC Lapacke wrapper and xerus QC factorisation.Version 2.1https://git.hemio.de/xerus/xerus/-/issues/136ADF returns wrong dimensions2017-05-29T23:27:30+02:00Fuchsi*ADF returns wrong dimensions````
| adf_completion starting: +00:00:16,525 fullTensor.cpp : 582 : fatal: resultDims == _result.dimensions failed msg: The given results has wrong dimensions { 6 } should be { 5 }
✗
| Test has thrown an uncaught xerus::ge...````
| adf_completion starting: +00:00:16,525 fullTensor.cpp : 582 : fatal: resultDims == _result.dimensions failed msg: The given results has wrong dimensions { 6 } should be { 5 }
✗
| Test has thrown an uncaught xerus::generic_error():
+00:00:16,525 fullTensor.cpp : 582 : fatal: resultDims == _result.dimensions failed msg: The given results has wrong dimensions { 6 } should be { 5 }
callstack:
[0x00000000008b3ecf .text] /homes/numerik/huber/store/code/xerus/src/xerus/fullTensor.cpp:562 (inside xerus::contract(xerus::FullTensor&, xerus::FullTensor const&, bool, xerus::FullTensor const&, bool, unsigned long))
[0x0000000000a79a5e .text] /homes/numerik/huber/store/code/xerus/src/xerus/algorithms/adf.cpp:213 (inside xerus::ADFVariant::solve(xerus::TTNetwork<false>&, std::vector<xerus::SinglePointMeasurment, std::allocator<xerus::SinglePointMeasurment> > const&) const)
[0x0000000000862cf5 .text] /homes/numerik/huber/store/code/xerus/src/unitTests/ttCompletion.cxx:29 (inside $_0::operator()() const)
[0x0000000000a70f61 .text] /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../include/c++/4.8/functional:2468 (inside std::function<bool ()>::operator()() const)
[0x0000000000a72a5d .text] /homes/numerik/huber/store/code/xerus/src/xerus/misc/test.cpp:221 (inside main)
[0x00002b62f6a9bbe5 .text] ??:? (inside __libc_start_main +0x245)
[0x0000000000423a61 .text] /home/abuild/rpmbuild/BUILD/glibc-2.18/csu/../sysdeps/x86_64/start.S:125 (inside _start)
exception thrown in function: contract (src/xerus/fullTensor.cpp : 582)
````Version 1.5Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/135ADF for general problems2017-05-29T23:27:30+02:00Sebastian WolfADF for general problemsVersion 2.1https://git.hemio.de/xerus/xerus/-/issues/134frob_norm(TTOperator*TTOperator) not working2017-05-29T23:27:30+02:00Fuchsi*frob_norm(TTOperator*TTOperator) not working````
terminate called after throwing an instance of 'xerus::misc::generic_error'
what(): +00:00:00,016 ttNetwork.cpp :1453 : fatal: movOther failed msg: not moveable TTStack encountered...
callstack:
[0x00000000004d8319...````
terminate called after throwing an instance of 'xerus::misc::generic_error'
what(): +00:00:00,016 ttNetwork.cpp :1453 : fatal: movOther failed msg: not moveable TTStack encountered...
callstack:
[0x00000000004d8319 .text] /usr/include/c++/4.8/sstream:584 (inside std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::str() const)
[0x00000000004cb1b4 .text] /homes/numerik/huber/store/code/xerus/include/xerus/indexedTensor.h:36 (inside ~IndexedTensor)
[0x000000000040a356 .text] /homes/numerik/huber/store/code/playground/../xerus/include/xerus/tensorNetwork.h:500 (inside frob_norm)
[0x00002ad9e034bbe5 .text] ??:? (inside __libc_start_main +0x245)
[0x000000000040bdf1 .text] /home/abuild/rpmbuild/BUILD/glibc-2.18/csu/../sysdeps/x86_64/start.S:125 (inside _start)
exception thrown in function: specialized_evaluation (src/xerus/ttNetwork.cpp : 1453)
````Version 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/133Use slice wise (fixed n) local optimisation in reconstruction ALS2017-05-29T23:27:30+02:00Sebastian WolfUse slice wise (fixed n) local optimisation in reconstruction ALSVersion 1.5https://git.hemio.de/xerus/xerus/-/issues/132Use Slice wise (fixed n) local optimisation in decomposition ALS2017-05-29T23:27:30+02:00Sebastian WolfUse Slice wise (fixed n) local optimisation in decomposition ALSVersion 1.5https://git.hemio.de/xerus/xerus/-/issues/129accidental sparsetensor in tttensor fails silently2017-05-29T23:27:30+02:00Fuchsi*accidental sparsetensor in tttensor fails silentlye.g.
```
b.set_component(n, (Tensor::dirac(b.component(n).dimensions, i)));
```
e.g.
```
b.set_component(n, (Tensor::dirac(b.component(n).dimensions, i)));
```
version 1.4https://git.hemio.de/xerus/xerus/-/issues/128signed / unsigned conversions in ADF2017-05-29T23:27:30+02:00Fuchsi*signed / unsigned conversions in ADFwon't compile with clang
```
src/xerus/algorithms/adf.cpp:111:34: error: implicit conversion changes signedness: 'unsigned long' to 'int64_t' (aka 'long') [-Werror,-Wsign-conversion]
int64_t corePosit...won't compile with clang
```
src/xerus/algorithms/adf.cpp:111:34: error: implicit conversion changes signedness: 'unsigned long' to 'int64_t' (aka 'long') [-Werror,-Wsign-conversion]
int64_t corePosition = degree-1;
~~~~~~~~~~~~ ~~~~~~^~
src/xerus/algorithms/adf.cpp:112:63: error: implicit conversion changes signedness: 'int64_t' (aka 'long') to 'size_type' (aka 'unsigned long') [-Werror,-Wsign-conversion]
for( ; corePosition > 0 && _measurments[realId].positions[corePosition] == _measurments[realPreviousId].positions[corePosition]; --corePosition) {
~~~~~~~~~~~~ ^~~~~~~~~~~~
src/xerus/algorithms/adf.cpp:112:119: error: implicit conversion changes signedness: 'int64_t' (aka 'long') to 'size_type' (aka 'unsigned long') [-Werror,-Wsign-conversion]
for( ; corePosition > 0 && _measurments[realId].positions[corePosition] == _measurments[realPreviousId].positions[corePosition]; --corePosition) {
~~~~~~~~~~~~ ^~~~~~~~~~~~
```version 1.4Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/191allow pickling tensors, tensor networks etc.2019-06-17T14:22:02+02:00Fuchsi*allow pickling tensors, tensor networks etc.- [x] add tests for tensors
- [x] add tests for tttensor
- [x] add tests for httensor
- [x] add tests for tensor networks- [x] add tests for tensors
- [x] add tests for tttensor
- [x] add tests for httensor
- [x] add tests for tensor networksVersion 4.0Philipp TrunschkePhilipp Trunschkehttps://git.hemio.de/xerus/xerus/-/issues/189modifications of Tensor Networks in python2019-04-03T18:53:01+02:00Fuchsi*modifications of Tensor Networks in pythonhttps://git.hemio.de/xerus/xerus/-/issues/173automatic comparison to numpy results2019-04-03T18:51:07+02:00Fuchsi*automatic comparison to numpy resultsrandomly create equations in einstein summation for xerus and numpy.
blocked by #92 randomly create equations in einstein summation for xerus and numpy.
blocked by #92 https://git.hemio.de/xerus/xerus/-/issues/147replace allocator should be removed2019-04-03T18:52:55+02:00Fuchsi*replace allocator should be removedVersion 4.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/131automatic testing of algorithms2019-04-03T18:36:09+02:00Fuchsi*automatic testing of algorithms- if they are of the default syntax, automatically generate speed histograms for all example systems and store them in a given path.
- Use thit to generate speed plots of all our algorithms on all test examples- if they are of the default syntax, automatically generate speed histograms for all example systems and store them in a given path.
- Use thit to generate speed plots of all our algorithms on all test examplesFuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/122GMRES2019-04-03T18:50:38+02:00Fuchsi*GMREScan be imported from the old librarycan be imported from the old libraryFuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/89Use some kind of auto-tools, bjam,... to automatically find and include the n...2019-04-03T18:52:49+02:00Sebastian WolfUse some kind of auto-tools, bjam,... to automatically find and include the needed libraries and header files.https://git.hemio.de/xerus/xerus/-/issues/86missing testcases2019-04-03T18:50:10+02:00Fuchsi*missing testcases- [ ] TTNetwork chop for operators
- [ ] TTNetwork dyadic product with vectors
- [ ] test orthogonality of U, V / Q in SVD and QR
- [ ] missing test for function PerformanceData::Histogram xerus::PerformanceData::Histogram::operator+...- [ ] TTNetwork chop for operators
- [ ] TTNetwork dyadic product with vectors
- [ ] test orthogonality of U, V / Q in SVD and QR
- [ ] missing test for function PerformanceData::Histogram xerus::PerformanceData::Histogram::operator+=(const xerus::PerformanceData::Histogram &) (src/xerus/performanceData.cpp:51)
- [ ] missing test for function TTTensor xerus::examples::peaking_diagonals(size_t, size_t, value_t) (src/xerus/examples/specificLowRankTensors.cpp:30)
- [ ] missing test for function TTTensor xerus::examples::peaking_diagonals(size_t, size_t, value_t) (src/xerus/examples/specificLowRankTensors.cpp:31)
- [ ] missing test for function bool xerus::TTNetwork<true>::is_valid_tt() const [isOperator = true] (src/xerus/ttNetwork.cpp:418)
- [ ] missing test for function bool xerus::TTNetwork<true>::is_valid_tt() const [isOperator = true] (src/xerus/ttNetwork.cpp:419)
- [ ] missing test for function item_t xerus::misc::min(const container_t<item_t, rest_t...> &) [container_t = vector, item_t = unsigned long, rest_t = <std::allocator<unsigned long>>] (include/xerus/misc/missingFunctions.h:167)
- [ ] missing test for function size_t xerus::TTNetwork<true>::find_largest_entry(const double, const value_t) const [isOperator = true] (src/xerus- [ ] /ttNetwork.cpp:974)
- [ ] missing test for function size_t xerus::TTNetwork<true>::rank(const size_t) const [isOperator = true] (src/xerus/ttNetwork.cpp:903)
- [ ] missing test for function static TTNetwork<isOperator> xerus::TTNetwork<false>::dyadic_product(const std::vector<std::reference_wrapper<TTNetwork<isOperator> > > &) [isOperator = false] (src/xerus/ttNetwork.cpp:605)
- [ ] missing test for function static TTNetwork<isOperator> xerus::TTNetwork<true>::dyadic_product(const TTNetwork<isOperator> &, const TTNetwork<isOperator> &) [isOperator = true] (src/xerus/ttNetwork.cpp:513)
- [ ] missing test for function static TTNetwork<isOperator> xerus::TTNetwork<true>::dyadic_product(const TTNetwork<isOperator> &, const TTNetwork<isOperator> &) [isOperator = true] (src/xerus/ttNetwork.cpp:514)
- [ ] missing test for function static TTNetwork<isOperator> xerus::TTNetwork<true>::dyadic_product(const TTNetwork<isOperator> &, const TTNetwork<isOperator> &) [isOperator = true] (src/xerus/ttNetwork.cpp:593)
- [ ] missing test for function static TTNetwork<isOperator> xerus::TTNetwork<true>::dyadic_product(const std::vector<std::reference_wrapper<TTNetwork<isOperator> > > &) [isOperator = true] (src/xerus/ttNetwork.cpp:605)
- [ ] missing test for function static bool xerus::TTNetwork<true>::specialized_sum_f(IndexedTensorWritable<xerus::TensorNetwork> &, const IndexedTensorReadOnly<xerus::TensorNetwork> &, const IndexedTensorReadOnly<xerus::TensorNetwork> &) [isOperator = true] (src/xerus/ttNetwork.cpp:1234)
- [ ] missing test for function std::pair<TensorNetwork, TensorNetwork> xerus::TTNetwork<true>::chop(const size_t) const [isOperator = true] (src/xerus/ttNetwork.cpp:746)
- [ ] missing test for function std::pair<TensorNetwork, TensorNetwork> xerus::TTNetwork<true>::chop(const size_t) const [isOperator = true] (src/xerus/ttNetwork.cpp:749)
- [ ] missing test for function std::pair<TensorNetwork, TensorNetwork> xerus::TTNetwork<true>::chop(const size_t) const [isOperator = true] (src/xerus/ttNetwork.cpp:807)
- [ ] missing test for function std::pair<TensorNetwork, TensorNetwork> xerus::TTNetwork<true>::chop(const size_t) const [isOperator = true] (src/xerus/ttNetwork.cpp:808)
- [ ] missing test for function std::string xerus::misc::exec(const std::string &) (src/xerus/misc/missingFunctions.cpp:31)
- [ ] missing test for function std::vector<size_t> xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::get_evaluated_dimensions(const std::vector<Index> &) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:101)
- [ ] missing test for function std::vector<size_t> xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::get_evaluated_dimensions(const std::vector<Index> &) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:109)
- [ ] missing test for function std::vector<size_t> xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::get_evaluated_dimensions(const std::vector<Index> &) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:110)
- [ ] missing test for function value_t xerus::IndexedTensorReadOnly<xerus::Tensor>::operator double() const [tensor_type = xerus::Tensor] (src/xerus/indexedTensorReadOnly.cpp:66)
- [ ] missing test for function value_t xerus::SteepestDescentVariant::solve(const TTOperator *, TTTensor &, const TTTensor &, size_t, value_t, xerus::PerformanceData &) const (src/xerus/algorithms/steepestDescent.cpp:92)
- [ ] missing test for function value_t xerus::SteepestDescentVariant::solve(const TTOperator *, TTTensor &, const TTTensor &, size_t, value_t, xerus::PerformanceData &) const (src/xerus/algorithms/steepestDescent.cpp:99)
- [ ] missing test for function virtual void xerus::TensorNetwork::operator/=(const value_t) (src/xerus/tensorNetwork.cpp:271)
- [ ] missing test for function virtual void xerus::internal::TTStack<true>::operator*=(const value_t) [isOperator = true] (include/xerus/ttNetwork.h:467)
- [ ] missing test for function void xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::check_indices(const size_t, const bool) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:188)
- [ ] missing test for function void xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::check_indices(const size_t, const bool) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:189)
- [ ] missing test for function void xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::check_indices(const size_t, const bool) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:190)
- [ ] missing test for function void xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::check_indices(const size_t, const bool) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:193)
- [ ] missing test for function void xerus::IndexedTensorReadOnly<xerus::TensorNetwork>::check_indices(const size_t, const bool) const [tensor_type = xerus::TensorNetwork] (src/xerus/indexedTensorReadOnly.cpp:194)
- [ ] missing test for function void xerus::TTNetwork<true>::assume_core_position(const size_t) [isOperator = true] (src/xerus/ttNetwork.cpp:940)
- [ ] missing test for function void xerus::TTNetwork<true>::soft_threshold(const std::vector<double> &, const bool) [isOperator = true] (src/xerus/ttNetwork.cpp:859)
- [ ] missing test for function void xerus::TTNetwork<true>::soft_threshold(const std::vector<double> &, const bool) [isOperator = true] (src/xerus/ttNetwork.cpp:860)
- [ ] missing test for function void xerus::TTTangentVector::set_base(const TTTensor &) (src/xerus/algorithms/retractions.cpp:76)
- [ ] missing test for function void xerus::matrix_matrix_product(std::map<size_t, double> &, const size_t, const size_t, const double, const std::map<size_t, double> &, const size_t, const double *const) (src/xerus/sparseTimesFullContraction.cpp:148)
https://git.hemio.de/xerus/xerus/-/issues/81Include version history automatically in doxygen documentation2019-04-03T18:52:37+02:00Sebastian WolfInclude version history automatically in doxygen documentationhttps://git.hemio.de/xerus/xerus/-/issues/202failing tests in gitlab pipeline2019-04-03T18:51:52+02:00Fuchsi*failing tests in gitlab pipelinesome of them are very strange. e.g. the following one should never fail
```
| Product_1000x1000 starting: ✗ +00:01:39,286 fullTensor_product.cxx: 409 : warning : memcmp(res.get_dense_data(), C.get_dense_data(), sizeof(value_t)*1000*...some of them are very strange. e.g. the following one should never fail
```
| Product_1000x1000 starting: ✗ +00:01:39,286 fullTensor_product.cxx: 409 : warning : memcmp(res.get_dense_data(), C.get_dense_data(), sizeof(value_t)*1000*1000)==0 failed
✓ ✓
| Product_1000x1000: FAILED! (535.353 ms, seed = baadf00d)
```
(see https://git.hemio.de/xerus/xerus/-/jobs/2291 )https://git.hemio.de/xerus/xerus/-/issues/203error: ‘LAPACKE_dpotrf2’ was not declared in this scope2017-11-21T12:34:55+01:00Martinerror: ‘LAPACKE_dpotrf2’ was not declared in this scopeHi,
I got an error bye running "make test" and this is the output:
g++ -I include src/xerus/algorithms/als.cpp -c -Wall -Wextra -pedantic -Wundef -Wunreachable-code -Wdisabled-optimization -Wcast-qual -Wsign-promo -Winit-self -Wnon-vir...Hi,
I got an error bye running "make test" and this is the output:
g++ -I include src/xerus/algorithms/als.cpp -c -Wall -Wextra -pedantic -Wundef -Wunreachable-code -Wdisabled-optimization -Wcast-qual -Wsign-promo -Winit-self -Wnon-virtual-dtor -Woverloaded-virtual -Wconversion -Wfloat-equal -Wshadow -Wswitch-default -Wpacked -Wcast-align -Wctor-dtor-privacy -Wold-style-cast -Wuseless-cast -Wno-error=useless-cast -Wlogical-op -Wtrampolines -Wnoexcept -Wno-comment -Wno-unknown-pragmas -Wno-unused-parameter -O3 -march=native -fbranch-target-load-optimize -fgcse-las -fgcse-sm -fira-loop-pressure -fmodulo-sched -fmodulo-sched-allow-regmoves -fsched-pressure -fsched-spec-load -fsched2-use-superblocks -ftree-loop-distribution -ftree-vectorize -D XERUS_LOG_INFO -D XERUS_VERSION="v3.0.1-6-gaa5cad3" -DXERUS_VERSION_MAJOR=3 -DXERUS_VERSION_MINOR=0 -DXERUS_VERSION_REVISION=1 -DXERUS_VERSION_COMMIT=6 -g -D HIGH_OPTIMIZATION -std=c++11 -MMD -o build/.libObjects/src/xerus/algorithms/als.o
src/xerus/blasLapackWrapper.cpp: In function ‘void xerus::blasWrapper::solve(double*, const double*, size_t, size_t, const double*, size_t)’:
src/xerus/blasLapackWrapper.cpp:599:6: error: ‘LAPACKE_dpotrf2’ was not declared in this scope
);
^
Makefile:250: recipe for target 'build/.libObjects/src/xerus/blasLapackWrapper.o' failed
make: *** [build/.libObjects/src/xerus/blasLapackWrapper.o] Error 1
Can anybody help me too fix this?
best regards
Martinhttps://git.hemio.de/xerus/xerus/-/issues/204Binary operations on Tensors use update operators2017-11-21T13:33:42+01:00Philipp TrunschkeBinary operations on Tensors use update operatorsFor example: xerus::Tensor::operator/ calls xerus::Tensor::operator/=
This causes unexpected behaviour.For example: xerus::Tensor::operator/ calls xerus::Tensor::operator/=
This causes unexpected behaviour.https://git.hemio.de/xerus/xerus/-/issues/100construct_identity, construct_one, construct_zero? in fulltensor2018-04-01T13:07:03+02:00Fuchsi*construct_identity, construct_one, construct_zero? in fulltensorversion 1.4Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/39quadmath or other higher-precision arithmetic2019-04-03T18:34:55+02:00Fuchsi*quadmath or other higher-precision arithmeticdepends on #42 depends on #42 https://git.hemio.de/xerus/xerus/-/issues/90Replace the blasAnalysis by a general performance measument system placed in ...2018-04-01T13:07:03+02:00Sebastian WolfReplace the blasAnalysis by a general performance measument system placed in misc.Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/37block-dmrg to solve eigenvalue problems2019-04-03T18:52:21+02:00Fuchsi*block-dmrg to solve eigenvalue problemssingle and multi-sitesingle and multi-sitehttps://git.hemio.de/xerus/xerus/-/issues/82implement +=, -= for indexed tensors2018-04-01T13:07:03+02:00Fuchsi*implement +=, -= for indexed tensorsand use those in operators +/-and use those in operators +/-Version 1.3Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/36AMEN algorithm and other ALS + gradientstep schemes2019-04-03T18:52:16+02:00Fuchsi*AMEN algorithm and other ALS + gradientstep schemeshttps://git.hemio.de/xerus/xerus/-/issues/74Enable xerus to work with arbitary sized tensors2019-04-03T18:52:30+02:00Sebastian WolfEnable xerus to work with arbitary sized tensorsUsing a size_t for the tensor size limits the theoretical possible size of a Tensor (even a TTTensor) to dimension 2^64-1. Especially for very sparse of very low rank tensors it is desirable to allow an arbitrary dimension.Using a size_t for the tensor size limits the theoretical possible size of a Tensor (even a TTTensor) to dimension 2^64-1. Especially for very sparse of very low rank tensors it is desirable to allow an arbitrary dimension.https://git.hemio.de/xerus/xerus/-/issues/11Add support for the HT format2019-03-20T12:12:46+01:00Sebastian WolfAdd support for the HT format- [x] add function require correct format
- [x] remove dead code
- [x] Double check documentation- [x] add function require correct format
- [x] remove dead code
- [x] Double check documentationVersion 4.0RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/58Implemente make install2018-04-01T13:07:03+02:00Sebastian WolfImplemente make installThe Makefile should allow simple installation of the shared library version of xerus.The Makefile should allow simple installation of the shared library version of xerus.Version 1.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/53Use GCCs (and Clangs) automatic dependency detection in our Makefile2018-04-01T13:07:03+02:00Sebastian WolfUse GCCs (and Clangs) automatic dependency detection in our MakefileThis should significantly improve the compile time if only few headers are changed.This should significantly improve the compile time if only few headers are changed.Version 1.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/52Allow output of TensorNetworks into graph plotting format, to visualize the n...2018-04-01T13:07:03+02:00Sebastian WolfAllow output of TensorNetworks into graph plotting format, to visualize the network.For example using http://www.graphviz.org or some other graph tool.For example using http://www.graphviz.org or some other graph tool.Version 1.2Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/51Include parallelisation where usefull2018-04-01T13:07:03+02:00Sebastian WolfInclude parallelisation where usefullUntil now parallelisation was no issue in xerus because more instances proved to be the better way to achieve statistic results. However for single large problems it might prove useful to have a parallel version of xerus. In particular t...Until now parallelisation was no issue in xerus because more instances proved to be the better way to achieve statistic results. However for single large problems it might prove useful to have a parallel version of xerus. In particular the random creation of tensors, the evaluation and the self implemented sparse routines come to mind.Version 3.0https://git.hemio.de/xerus/xerus/-/issues/34Gradient method (IHT, IST) + CG2018-04-01T13:07:03+02:00Fuchsi*Gradient method (IHT, IST) + CGVersion 1.3Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/32Add support for SVD of SparseTensors2018-04-01T13:07:03+02:00Sebastian WolfAdd support for SVD of SparseTensorsVersion 3.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/31Add support for QR and RQ factorisation for SparseTensors2018-04-01T13:07:03+02:00Sebastian WolfAdd support for QR and RQ factorisation for SparseTensorsVersion 2.2Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/27Allow efficent acces to single entries of tensor network2018-04-01T13:07:04+02:00Sebastian WolfAllow efficent acces to single entries of tensor networkVersion 1.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/15Upgrade the UnitTests to support unit test rules for different types, e.g. Fu...2019-04-03T18:52:12+02:00Sebastian WolfUpgrade the UnitTests to support unit test rules for different types, e.g. FullTensor and SparseTensorhttps://git.hemio.de/xerus/xerus/-/issues/14Add SparseTensor * FullTensor contraction2018-04-01T13:07:04+02:00Sebastian WolfAdd SparseTensor * FullTensor contractionVersion 1.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/13Convert the bool flag in Index to an uint flag variable to allow up to 32 flags2018-04-01T13:07:04+02:00Sebastian WolfConvert the bool flag in Index to an uint flag variable to allow up to 32 flagsthis would allow the use of index/2 to denote half the indices etc. (useful e.g. for TTtensors). Might also consider `i/2-1` ? e.g. for quantum state contractions `A(i/2-1,j,k/2-1,j)`.this would allow the use of index/2 to denote half the indices etc. (useful e.g. for TTtensors). Might also consider `i/2-1` ? e.g. for quantum state contractions `A(i/2-1,j,k/2-1,j)`.Version 1.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/5Multi-Site ALS2018-04-01T13:07:04+02:00Sebastian WolfMulti-Site ALSThe ALS needs an implementation for more than one site.The ALS needs an implementation for more than one site.Version 2.0Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/28Allow construction of TTTensors including the diagonal matrices2019-04-03T18:48:16+02:00Sebastian WolfAllow construction of TTTensors including the diagonal matricesThe feature was more or less present in the old tensor library.The feature was more or less present in the old tensor library.https://git.hemio.de/xerus/xerus/-/issues/25TTOperator preconditioners missing2019-04-03T18:55:00+02:00Sebastian WolfTTOperator preconditioners missingThe precoditioners from the old tensor library are not yet ported to xerus.The precoditioners from the old tensor library are not yet ported to xerus.https://git.hemio.de/xerus/xerus/-/issues/127Move evaluate partly into TN2018-04-23T03:03:36+02:00Sebastian WolfMove evaluate partly into TNVersion 2.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/126ALLOW_MOVE for template types2018-04-23T03:03:36+02:00Fuchsi*ALLOW_MOVE for template typesmacro should have the definition ALLOW_MOVE(newName, ...) to allow arbitrary template arguments (ie. those with ',' in them....)macro should have the definition ALLOW_MOVE(newName, ...) to allow arbitrary template arguments (ie. those with ',' in them....)version 1.4Fuchsi*Fuchsi*