launchMultiGatherFloatStrided#

Fully qualified name: isaacsim::physics::newton::tensors::launchMultiGatherFloatStrided

template<int numSrc>
bool isaacsim::physics::newton::tensors::launchMultiGatherFloatStrided(
const cuda::std::array<float*, numSrc> src,
float *dst,
unsigned numDst,
const int *devIndices,
int numIndices,
void *stream = nullptr,
)#

Gather scalar floats by index, and channel. Writing zero for -1 entries, and dst channels with no corresponding src array.

dst[i * numDst + v] = (devIndices[i] >= 0 && v < numSrc) ? src[v][devIndices[i]] : 0.0f for i in [0, numIndices), for v in [0, numDest).

Template Parameters:

numSrc – Number of source scalar arrays.

Parameters:
  • src – Device pointers to the source scalar arrays.

  • dst – Device pointer to the destination array, length numIndices * numDst.

  • numDst – Number of destination array channels

  • devIndices – Device index array, length numIndices.

  • numIndices – Number of gather slots.

  • stream – CUDA stream to launch on.

Returns:

true if the launch succeeded.