Method: Vdsp::UnsafeDouble.vclipc

Defined in:
ext/vdsp/vdsp.c

.vclipc(a, a_offset, a_stride, b, c, d, d_offset, d_stride, n) ⇒ Object



2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
# File 'ext/vdsp/vdsp.c', line 2796

VALUE rb_double_vclipc(
  VALUE cls,
  VALUE a, VALUE a_offset, VALUE a_stride,
  VALUE b,
  VALUE c,
  VALUE d, VALUE d_offset, VALUE d_stride,
  VALUE n)
{
  VdspArrayParam _a;
  VdspArrayParam _d;
  vDSP_Length _n_low = 0;
  vDSP_Length _n_high = 0;

  array_param(&_a, a, a_offset, a_stride);
  array_param(&_d, d, d_offset, d_stride);
  double _b = NUM2DBL(b);
  double _c = NUM2DBL(c);
  vDSP_Length _n = NUM2LONG(n);

  vDSP_vclipcD(
    _a.res0->v.d+_a.offset, _a.stride,
    &_b,
    &_c,
    _d.res0->v.d+_d.offset, _d.stride,
    _n,
    &_n_low,
    &_n_high);

  return rb_ary_new3(3, d, LONG2NUM(_n_low), LONG2NUM(_n_high));
}