xerus issueshttps://git.hemio.de/xerus/xerus/-/issues2020-04-21T10:19:54+02:00https://git.hemio.de/xerus/xerus/-/issues/262Slice TTTensor2020-04-21T10:19:54+02:00Nando FarchminSlice TTTensorWould be good to get a subtensor, i.e. slice of the tensor (a subtensor from dimensions (l_1,...,l_n) to dimensions (u_1,...,u_n) where 0 <= l_i <= u_i <= tensor_dim_i, see code below.)
```
def slice_tt(tt, lower, upper):
"""
Sl...Would be good to get a subtensor, i.e. slice of the tensor (a subtensor from dimensions (l_1,...,l_n) to dimensions (u_1,...,u_n) where 0 <= l_i <= u_i <= tensor_dim_i, see code below.)
```
def slice_tt(tt, lower, upper):
"""
Slice TTTensor in each component from lower to (not including) upper dimension.
"""
assert len(lower) == len(upper) == len(tt.dimensions)
assert np.all(np.array(lower) < np.array(upper))
assert np.all(np.array(upper) <= np.array(tt.dimensions))
diff = [u-l for l,u in zip(lower,upper)]
# TODO there should be a more elegant way to slice TTTensors!
tmp = xe.TTTensor(tt)
for pos in range(tt.order()):
tmp.move_core(pos)
cmp = np.asarray(tmp.get_component(pos))
cmp[:, :lower[pos], :] = 0
cmp[:, upper[pos]:, :] = 0
tmp.set_component(pos, xe.Tensor.from_buffer(cmp))
tmp.move_core(0)
tt_slice = xe.TTTensor.random(diff, tmp.ranks())
for pos in range(tt.order()):
cmp = np.asarray(tmp.get_component(pos))
cmp = np.array(cmp[:, lower[pos]:upper[pos], :])
tt_slice.set_component(pos, xe.Tensor.from_buffer(cmp))
return tt_slice
```Version 4.1Philipp TrunschkePhilipp Trunschkehttps://git.hemio.de/xerus/xerus/-/issues/242Add a CI test using _GLIBCXX_ASSERTIONS2019-04-02T15:39:55+02:00Sebastian WolfAdd a CI test using _GLIBCXX_ASSERTIONSThe config file allows to use the additional assertions of the GLIBC via `-D _GLIBCXX_ASSERTIONS`. There should be a CI test where this is active as it would directly expose e.g. vector out-of-bounds errors.The config file allows to use the additional assertions of the GLIBC via `-D _GLIBCXX_ASSERTIONS`. There should be a CI test where this is active as it would directly expose e.g. vector out-of-bounds errors.Version 4.0Sebastian WolfSebastian Wolfhttps://git.hemio.de/xerus/xerus/-/issues/238Revisit Conda Build2019-06-19T09:35:22+02:00RoteKekseRevisit Conda BuildVersion 4.1RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/236Audit Docker2019-06-19T09:35:34+02:00RoteKekseAudit DockerVersion 4.1RoteKekseRoteKeksehttps://git.hemio.de/xerus/xerus/-/issues/226How to handle weights in L2 error for Measurments2019-03-20T12:05:58+01:00Sebastian WolfHow to handle weights in L2 error for MeasurmentsHow should the L2 error in measurements with weights be calculated? The options are
```math
\sqrt{ \sum_i w_i (x_i - y_i)^2 }
```
and
```math
\sqrt{ \sum_i w_i^2 (x_i - y_i)^2 }
```
or anything else...How should the L2 error in measurements with weights be calculated? The options are
```math
\sqrt{ \sum_i w_i (x_i - y_i)^2 }
```
and
```math
\sqrt{ \sum_i w_i^2 (x_i - y_i)^2 }
```
or anything else...Version 4.0Philipp TrunschkePhilipp Trunschkehttps://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/199export exceptions to python2017-05-23T13:08:29+02:00Fuchsi*export exceptions to pythonVersion 3.0Fuchsi*Fuchsi*https://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/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/186tests for python-interface2019-06-13T12:57:05+02:00Fuchsi*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 var...To 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/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/172Add TT-Cross Approximation2019-03-04T12:39:27+01:00Sebastian WolfAdd TT-Cross ApproximationVersion XPhilipp TrunschkePhilipp Trunschkehttps://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/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/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/135ADF for general problems2017-05-29T23:27:30+02:00Sebastian WolfADF for general problemsVersion 2.1