Skip to content

Pass by reference #43

@vavrines

Description

@vavrines

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions