Source code for teneva.vis

"""Package teneva, module vis: visualization methods for tensors.

This module contains the functions for visualization of TT-tensors.

"""
import numpy as np
import teneva


[docs]def show(Y): """Check and display mode sizes and TT-ranks of the given TT-tensor. Args: Y (list): TT-tensor. """ if not isinstance(Y, list) or len(Y) == 0: raise ValueError('Invalid TT-tensor') d = len(Y) n = [] r = [1] for G in Y: if not isinstance(G, np.ndarray) or len(G.shape) != 3: raise ValueError('Invalid core for TT-tensor') if G.shape[0] != r[-1]: raise ValueError('Invalid shape of core for TT-tensor') n.append(G.shape[1]) r.append(G.shape[2]) if r[-1] != 1: raise ValueError('Invalid shape of core for TT-tensor') text1 = f'TT-tensor {d:-5d}D : ' text2 = f'<rank> = {teneva.erank(Y):-6.1f} : ' for k in range(d): text1 += ' ' * max(0, len(text2)-len(text1)-1) text1 += f'|{n[k]}|' if k < d-1: text2 += ' ' * (len(text1)-len(text2)-1) text2 += f'\\{r[k+1]}/' print(text1 + '\n' + text2)