// lib/SPVM/MyAdd.cu
#include "spvm_native.h"
#include "cuda_array_culc.h"

extern "C" {

int32_t SPVM__MyAdd__add_cuda(SPVM_ENV* env, SPVM_VALUE* stack) {
   
  void* sv_nums1 = stack[0].oval;
  void* sv_nums2 = stack[1].oval;
  
  int32_t length1 = env->length(env, sv_nums1);
  int32_t length2 = env->length(env, sv_nums2); 
  
  float* nums1 = env->get_elems_float(env, sv_nums1);
  float* nums2 = env->get_elems_float(env, sv_nums2);   
  
  cuda_array_culc_add_float(nums1, nums2, length1);
 
  return 0;
}
} // End of extern "C"