Arrays and tensors¶
xtensor-julia
provides two container types wrapping Julia arrays: jlarray
and jltensor
. They are the counterparts
to xarray
and xtensor
containers.
jlarray¶
Like xarray
, jlarray
has a dynamic shape. This means that one can reshape the array on the C++ side and see this
change reflected on the Julia side. jlarray
doesn’t make a copy of the shape, but reads the values each time it
is needed. Therefore, if a reference on a jlarray
is kept in the C++ code and the corresponding Julia array is then reshaped
on the Julia side, this modification will reflect in the jlarray
.
jltensor¶
Like xtensor
, jltensor
has a static stack-allocated shape. This means that the shape of the Julia array is copied into
the shape of the jltensor
upon creation. As a consequence, reshapes are not reflected across languages. However, this drawback
is offset by a more effective iteration and broadcasting.