# TABLE OF CONTENTS (WORKING DRAFT) * ITensor Library Overview ## ITENSOR FUNDAMENTALS * Index Objects * ITensor Basics * Contracting ITensors * Factorizing ITensors - SVD - diagHermitian * Adjusting Prime Levels (Advanced Contraction?) - prime by Index - prime by IndexType - mapprime - swapPrime - primeExcept (v2-only currently) * Case Study: Tensor Renormalization Group Algorithm "We have already assembled enough tools to write a very powerful algorithm: tensor renormalization group (TRG)." * Sparse ITensors - combiners - diagonal ITensors * Reading and writing to disk ## IQTENSOR - SYMMETRY PRESERVING TENSORS * Introduction to IQTensors * IQIndex Objects * IQTensor Basics ## MATRIX PRODUCT STATES (MPS) AND DMRG * MPS/DMRG Overview * SiteSets * Constructing MPS * Making Hamiltonians with AutoMPO * The DMRG Algorithm * DMRG Observers ## ADVANCED TOPICS * Advanced ITensor/IQTensor Usage - realPart, imagPart; takeRealPart, takeImagPart - commonIndex,uniqueIndex, - making random tensors - apply/generate/fill/visit functions; a lot more useful with C++14 auto lambdas but can emulate with a templated function object - Contracting ITensor with IndexVal: effectively like contracting with kronecker delta tensor - Sparse ITensors (how to create and use cases) Generally can be used for "eager slicing" operations which make a copy of the data. * Combiners. * Identity/projector like tensors. Use cases include replacing indices; "tying" indices. * Diagonal tensors ("all same" and general) Use cases include singular values tensor; tracing other tensors. ## DESIGN OF ITENSOR LIBRARY AND INTERNALS * ITensor Internals - scale factors - Copy-on-write mechanism - ITData system (v2)