C Interface
The C-interface provides access to the C++ classes through function calls. Because C does not have classes they are passed as opaque pointers, i.e. pointers to an incomplete type.
A proxy instance can be created by a call to one of the constructor functions:
CPU_Optimized_create()from CPU/Optimized/OptimizedC.h to create an instance ofidg::proxy::cpu::Optimized.CPU_Reference_create()from CPU/Reference/ReferenceC.h to create an instance ofidg::proxy::cpu::Reference.CUDA_Generic_create()from CUDA/Generic/GenericC.h to create an instance ofidg::proxy::cuda::Generic.CUDA_Unified_create()from CUDA/Unified/UnifiedC.h to create an instance ofidg::proxy::cuda::Unified.HybridCUDA_GenericOptimized_create()from Hybrid/CUDA/GenericOptimized/GenericOptimized.h to create an instance ofidg::proxy::hybrid::GenericOptimized.HybridCUDA_UnifiedOptimized_create()from Hybrid/CUDA/UnifiedOptimized/UnifiedOptimizedC.h to create an instance ofidg::proxy::hybrid::UnifiedOptimized.
Afterwards the proxy need to be destroyed by a call to Proxy_destroy()