MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / copy_from

Method copy_from

src/core/ITensor.cpp:36–70  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34namespace arm_compute
35{
36void ITensor::copy_from(const ITensor &src)
37{
38 if (&src == this)
39 {
40 return;
41 }
42
43 const ITensorInfo *src_info = src.info();
44 ITensorInfo *dst_info = this->info();
45
46 ARM_COMPUTE_ERROR_ON(src_info->num_dimensions() > dst_info->num_dimensions());
47 ARM_COMPUTE_ERROR_ON(src_info->num_channels() != dst_info->num_channels());
48 ARM_COMPUTE_ERROR_ON(src_info->element_size() != dst_info->element_size());
49
50 for (size_t d = 0; d < src_info->num_dimensions(); d++)
51 {
52 ARM_COMPUTE_ERROR_ON(src_info->dimension(d) > dst_info->dimension(d));
53 }
54
55 // Copy information about valid region
56 dst_info->set_valid_region(src_info->valid_region());
57
58 Window win_src;
59 win_src.use_tensor_dimensions(src_info->tensor_shape(), Window::DimY);
60 Window win_dst;
61 win_dst.use_tensor_dimensions(dst_info->tensor_shape(), Window::DimY);
62
63 Iterator src_it(&src, win_src);
64 Iterator dst_it(this, win_dst);
65
66 const size_t line_size = src_info->element_size() * src_info->dimension(0);
67
68 execute_window_loop(
69 win_src, [&](const Coordinates &) { memcpy(dst_it.ptr(), src_it.ptr(), line_size); }, src_it, dst_it);
70}
71
72#ifdef ARM_COMPUTE_ASSERTS_ENABLED
73void ITensor::print(std::ostream &s, IOFormatInfo io_fmt) const

Callers

nothing calls this directly

Calls 8

infoMethod · 0.45
num_dimensionsMethod · 0.45
num_channelsMethod · 0.45
element_sizeMethod · 0.45
dimensionMethod · 0.45
set_valid_regionMethod · 0.45
valid_regionMethod · 0.45
ptrMethod · 0.45

Tested by

no test coverage detected