xtensor-julia icon indicating copy to clipboard operation
xtensor-julia copied to clipboard

Pass by reference

Open vavrines opened this issue 2 years ago • 0 comments

The assignment operation, i.e.,

xt::jltensor<double, 1> test(xt::jltensor<double, 1> u) {
  xt::jltensor<double, 1> f = u;
  return f;
}

cannot be performed in-place through

void test(xt::jltensor<double, 1> f, xt::jltensor<double, 1> u) {
  f = u;
}

~~This is understandable since the argument is value instead of the reference.~~ Is there a workaround for the in-place mutation?

edit: an explicit for-loop can do this

void test1([T](xt::jltensor<double, 1> f, xt::jltensor<double, 1> u) { 
  int nu = u.shape(0);
  for (int i = 0; i < nu; i++) {
    f[i] = u[i];
  }
}

But is there an easier way?

vavrines avatar Nov 07 '22 21:11 vavrines