MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / copyArray

Function copyArray

src/backend/opencl/copy.cpp:36–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34
35template<typename T>
36Array<T> copyArray(const Array<T> &src) {
37 Array<T> out = createEmptyArray<T>(src.dims());
38 if (src.elements() > 0) {
39 if (src.isReady()) {
40 if (src.isLinear()) {
41 getQueue().enqueueCopyBuffer(
42 *src.get(), *out.get(), src.getOffset() * sizeof(T), 0,
43 src.elements() * sizeof(T), nullptr, nullptr);
44 } else {
45 kernel::memcopy<T>(*out.get(), out.strides(), *src.get(),
46 src.dims(), src.strides(), src.getOffset(),
47 src.ndims());
48 }
49 } else {
50 Param info = {out.get(),
51 {{src.dims().dims[0], src.dims().dims[1],
52 src.dims().dims[2], src.dims().dims[3]},
53 {out.strides().dims[0], out.strides().dims[1],
54 out.strides().dims[2], out.strides().dims[3]},
55 0}};
56 evalNodes(info, src.getNode().get());
57 }
58 }
59 return out;
60}
61
62template<typename T>
63void multiply_inplace(Array<T> &src, double norm) {

Callers 8

svdFunction · 0.70
createSubArrayFunction · 0.70
copyDataFunction · 0.70
qrFunction · 0.70
transformFunction · 0.70
leastSquaresFunction · 0.70
qrFunction · 0.50
solveFunction · 0.50

Calls 11

evalNodesFunction · 0.70
getQueueFunction · 0.50
dimsMethod · 0.45
elementsMethod · 0.45
isReadyMethod · 0.45
isLinearMethod · 0.45
getMethod · 0.45
getOffsetMethod · 0.45
stridesMethod · 0.45
ndimsMethod · 0.45
getNodeMethod · 0.45

Tested by

no test coverage detected