xerus issueshttps://git.hemio.de/xerus/xerus/-/issues2018-04-23T03:03:40+02:00https://git.hemio.de/xerus/xerus/-/issues/4Change direction of the ALS2018-04-23T03:03:40+02:00Sebastian WolfChange direction of the ALSAt the moment the ALS starts on the left most node, while the standard normalization has the core at the right most node.
this results in unneccesary renormalizationsAt the moment the ALS starts on the left most node, while the standard normalization has the core at the right most node.
this results in unneccesary renormalizationsVersion 1.2https://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/60Make all tutorials also testcases2018-04-23T03:03:38+02:00Sebastian WolfMake all tutorials also testcasesversion 1.1Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/67clean up global definitions2018-04-23T03:03:38+02:00Fuchsi*clean up global definitionssome misc stuff (eg logger and test) are not yet inside the MISC namespace, there is a `___THIS_IS_A_NEW_NAMESPACE___` namespace and a namespace called "r". also some objects inside xerus:: that are unnecessarz (eg: n,m,r).
some misc stuff (eg logger and test) are not yet inside the MISC namespace, there is a `___THIS_IS_A_NEW_NAMESPACE___` namespace and a namespace called "r". also some objects inside xerus:: that are unnecessarz (eg: n,m,r).
version 1.1Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/70TTTensor Chop not working as intended2018-04-23T03:03:38+02:00Fuchsi*TTTensor Chop not working as intended- Number of external indices of left and right side is wrong in the operator case.
- same functionality can be obtained by simply contracting the component tensors as `nodes[i].tensorObject(i&1,j) * nodes[i+1].tensorObject(j,k&1)`, so w...- Number of external indices of left and right side is wrong in the operator case.
- same functionality can be obtained by simply contracting the component tensors as `nodes[i].tensorObject(i&1,j) * nodes[i+1].tensorObject(j,k&1)`, so why the hassle of manually counting dimensions?
- one could argue that this function is rather specific to one purpose and thus rather a part of the ALS it is being written for, than an important part of tttensor :P (alternatively this function should be less specific. eg. by allowing to remove several nodes inbetween to allow dmrg implementations to use it)version 1.1Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/76Make FullTensor and SparseTensor +/- operators work with an arbitary Tensor r...2018-04-23T03:03:38+02:00Sebastian WolfMake FullTensor and SparseTensor +/- operators work with an arbitary Tensor refrence, instead of Full/SparseTensor.Leads to simplification of other functions.Leads to simplification of other functions.Version 1.2https://git.hemio.de/xerus/xerus/-/issues/77Doxygen doesn't parse xerus/algorithms/*2018-04-23T03:03:38+02:00Sebastian WolfDoxygen doesn't parse xerus/algorithms/*E.g. http://libxerus.org/xerus_8h.html includes a link to all includes files but xerus/algorithms/als.h".E.g. http://libxerus.org/xerus_8h.html includes a link to all includes files but xerus/algorithms/als.h".version 1.1Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/80create xerus::epsilon to be used for all near-zero values2018-04-23T03:03:38+02:00Fuchsi*create xerus::epsilon to be used for all near-zero valuesand replace all occurences of 1e-15, 1e-14 and similar magic values by this epsilon...and replace all occurences of 1e-15, 1e-14 and similar magic values by this epsilon...Version 1.2Sebastian WolfSebastian Wolfhttps://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/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/83useless-casts in TensorNetwork?2018-04-23T03:03:38+02:00Fuchsi*useless-casts in TensorNetwork?g++ 5.1.1 shows following warnings (errors in default configuration)
~~~
src/xerus/tensorNetwork.cpp: In member function ‘xerus::TensorNetwork::operator xerus::FullTensor() const’:
src/xerus/tensorNetwork.cpp:134:100: warning: useless...g++ 5.1.1 shows following warnings (errors in default configuration)
~~~
src/xerus/tensorNetwork.cpp: In member function ‘xerus::TensorNetwork::operator xerus::FullTensor() const’:
src/xerus/tensorNetwork.cpp:134:100: warning: useless cast to type ‘xerus::FullTensor’ [-Wuseless-cast]
return FullTensor(std::move(*static_cast<FullTensor*>(fully_contracted_tensor().get())));
^
src/xerus/tensorNetwork.cpp: In member function ‘xerus::TensorNetwork::operator xerus::SparseTensor() const’:
src/xerus/tensorNetwork.cpp:142:104: warning: useless cast to type ‘xerus::SparseTensor’ [-Wuseless-cast]
return SparseTensor(std::move(*static_cast<SparseTensor*>(fully_contracted_tensor().get())));
^
```version 1.1https://git.hemio.de/xerus/xerus/-/issues/85Allow TTNetwork constructors to use a Tensor reference (instead of FullTensor...2018-04-23T03:03:37+02:00Sebastian WolfAllow TTNetwork constructors to use a Tensor reference (instead of FullTensor or SparseTensor reference)Version 1.2Sebastian WolfSebastian Wolfhttps://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/88standard-conformity: no names starting with '__'2018-04-23T03:03:37+02:00Fuchsi*standard-conformity: no names starting with '__'from the standard:
~~~
17.4.3.2.1 Global names [lib.global.names]
Certain sets of names and function signatures are always reserved to the implementation:
Each name that contains a double underscore (_ _) or begins with an ...from the standard:
~~~
17.4.3.2.1 Global names [lib.global.names]
Certain sets of names and function signatures are always reserved to the implementation:
Each name that contains a double underscore (_ _) or begins with an underscore followed by an uppercase letter (2.11) is reserved to the implementation for any use.
[...]
~~~version 1.1Fuchsi*Fuchsi*https://git.hemio.de/xerus/xerus/-/issues/91write crontibution guide2018-04-23T03:03:37+02:00Fuchsi*write crontibution guidein "CONTRIBUTING.md"in "CONTRIBUTING.md"https://git.hemio.de/xerus/xerus/-/issues/96change direction in TTNetwork::round2018-04-23T03:03:37+02:00Fuchsi*change direction in TTNetwork::roundat the moment a non cannonicalized TT is rounded in 3*d steps instead of 2*d (as the default cannonicalization was defined to be core at 0)
constructor from FullTensor has the same problem and needs to be fixed as wellat the moment a non cannonicalized TT is rounded in 3*d steps instead of 2*d (as the default cannonicalization was defined to be core at 0)
constructor from FullTensor has the same problem and needs to be fixed as wellversion 1.4Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/98Move *=, /= and approx_equal to Tensor2018-04-23T03:03:37+02:00Sebastian WolfMove *=, /= and approx_equal to TensorVersion 1.2Sebastian WolfSebastian Wolfhttps://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/102FullTensor constructor from Tensor& instead of FullTensor& and SparseTensor&2018-04-23T03:03:37+02:00Fuchsi*FullTensor constructor from Tensor& instead of FullTensor& and SparseTensor&Version 1.3Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/104operators * value_t and /value_t in indexedTensor2018-04-23T03:03:37+02:00Fuchsi*operators * value_t and /value_t in indexedTensorVersion 1.2Sebastian WolfSebastian Wolf