|
|
|||
File indexing completed on 2025-10-28 08:39:18
0001 //------------------------------- -*- C++ -*- -------------------------------// 0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details 0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT) 0004 //---------------------------------------------------------------------------// 0005 //! \file corecel/data/ObserverPtr.device.hh 0006 //! \brief Interoperability with Thrust 0007 //---------------------------------------------------------------------------// 0008 #pragma once 0009 0010 #include <thrust/device_ptr.h> 0011 0012 #include "ObserverPtr.hh" 0013 0014 namespace celeritas 0015 { 0016 //---------------------------------------------------------------------------// 0017 //! Create an observer pointer from a Thrust device pointer 0018 template<class T> 0019 ObserverPtr<T, MemSpace::device> make_observer(thrust::device_ptr<T> ptr) 0020 { 0021 return ObserverPtr<T, MemSpace::device>{ptr.get()}; 0022 } 0023 0024 //---------------------------------------------------------------------------// 0025 //! Create a Thrust device pointer from an Observer pointer 0026 template<class T> 0027 thrust::device_ptr<T> device_pointer_cast(ObserverPtr<T, MemSpace::device> ptr) 0028 { 0029 return thrust::device_ptr<T>{static_cast<T*>(ptr)}; 0030 } 0031 0032 //---------------------------------------------------------------------------// 0033 } // namespace celeritas
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|