code: public static int cudaBindSurfaceToArray(surfaceReference surfref, cudaArray array, cudaChannelFormatDesc desc)
      {
          return checkResult(cudaBindSurfaceToArrayNative(surfref, array, desc));
      }
docs: [C++ API] Binds an array to a surface
  
  <pre>
  template < class T, int dim > cudaError_t cudaBindSurfaceToArray (
  const surface < T,
  dim > & surf,
  cudaArray_const_t array,
  const cudaChannelFormatDesc& desc ) [inline]
  </pre>
  <div>
  <p>[C++ API] Binds an array to a surface
  Binds the CUDA array <tt>array</tt> to the surface reference <tt>surf</tt>. <tt>desc</tt> describes how the memory is interpreted when
  dealing with the surface. Any CUDA array previously bound to <tt>surf</tt> is unbound.
  </p>
  <div>
  <span>Note:</span>
  <p>Note that this
  function may also return error codes from previous, asynchronous
  launches.
  </p>
  </div>
  </p>
  </div>
  
  @param surfref Surface to bind
  @param array Memory array on device
  @param desc Channel format
  @param surf Surface to bind
  @param array Memory array on device
  @param surf Surface to bind
  @param array Memory array on device
  @param desc Channel format
  
  @return cudaSuccess, cudaErrorInvalidValue, cudaErrorInvalidSurface
  
  @see JCuda#cudaBindSurfaceToArray
  @see JCuda#cudaBindSurfaceToArray