#ifndef SOFTRVV_VFDIV_H
#define SOFTRVV_VFDIV_H

#include <stddef.h>

namespace softrvv {

void vfdiv_vf(float *dest, float *src1, const float *src2, int32_t avl) {
  for (int32_t idx = 0; idx < avl; idx++) {
    dest[idx] = src1[idx] / *src2;
  }
}

void vfdiv_vv(float *dest, float *src1, float *src2, int32_t avl) {
  for (int32_t idx = 0; idx < avl; idx++) {
    dest[idx] = src1[idx] / src2[idx];
  }
}

void vfrdiv_vf(float *dest, float *src1, const float *src2, int32_t avl) {
  for (int32_t idx = 0; idx < avl; idx++) {
    dest[idx] = *src2 / src1[idx];
  }
}

}  // namespace softrvv

#endif  // SOFTRVV_VFDIV_H
