# TensorOperations.jl

**URL:** <https://discourse.julialang.org/t/tensoroperations-jl/31327>\
**Category:** Package Announcements\
**Tags:** tensors\
**Created:** [November 20, 2019, 11:19pm UTC](https://discourse.julialang.org/t/tensoroperations-jl/31327 "2019-11-20T23:19:09Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![juthohaegeman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juthohaegeman/32/8620_2.png) [@juthohaegeman](https://discourse.julialang.org/u/juthohaegeman)\
**Post date:** [November 20, 2019, 11:19pm UTC](https://discourse.julialang.org/t/tensoroperations-jl/31327/1 "2019-11-20T23:19:10Z")

</div>

I am pleased to announce that I’ve just registered v2.0 of [TensorOperations.jl](https://github.com/Jutho/TensorOperations.jl). New features include

- an `ncon` function and `@ncon` macro for tensor network contractions using an interface that is familiar to a large fraction of the quantum tensor network community. Unlike the existing `@tensor` macro and friends, it processes the tensor contraction pattern at runtime so that it can cope with dynamical networks or index specifications. The downside is that this breaks type inference and thus results in type unstable code, and slightly lower performance. More information in the [docs](https://jutho.github.io/TensorOperations.jl/latest/indexnotation/#Index-notation-with-macros-1);

- support for `CuArray` objects, by relying on NVidia’s cuTENSOR library, i.e. the functionality that was existing in the experimental package [CuTensorOperations.jl](https://github.com/Jutho/CuTensorOperations.jl). As NVidia just released the official version 1.0 of [cuTENSOR](https://developer.nvidia.com/cutensor), and the required [update](https://github.com/JuliaGPU/CuArrays.jl/pull/502) to CuArrays.jl is currently WIP, this functionality will probably require an update of TensorOperations.jl as well in the near future;

- under the hood: completely rewrittten macro processing, making it more easy to modify or create new `@tensor` like macros.
