virtual void init() { // __startAtomicTransaction(__getTransactionEvent()); size_t current_size = host->getCurrentSize(); DataSpace<DIM> hostCurrentSize = host->getCurrentDataSpace(current_size); if (host->is1D() && device->is1D()) fastCopy(host->getPointer(), device->getPointer(), hostCurrentSize.getElementCount()); else copy(hostCurrentSize); device->setCurrentSize(current_size); this->activate(); // __setTransactionEvent(__endTransaction()); }
virtual void init() { // __startAtomicTransaction( __getTransactionEvent()); size_t current_size = source->getCurrentSize(); destination->setCurrentSize(current_size); DataSpace<DIM> devCurrentSize = source->getCurrentDataSpace(current_size); if (source->is1D() && destination->is1D()) fastCopy(source->getPointer(), destination->getPointer(), devCurrentSize.productOfComponents()); else copy(devCurrentSize); this->activate(); // __setTransactionEvent(__endTransaction()); }
void gradientAt(double const * p, double * result) const { TheaArray<double> const & coeffs = getCoefficients(); if (!coeffs.empty()) fastCopy(&coeffs[0], &coeffs[0] + coeffs.size(), result); }