vdsp 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/vdsp/vdsp.c +35 -1
- data/lib/vdsp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7cd18e0b6e9eef27106756446b21cadd2e1cb8f2a2bfada08e4651aab9c6fd34
|
4
|
+
data.tar.gz: 6576aa464cdaaace4c13a6bab237c7dd36f2f057955527c995d723bb7ac86f6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c60da222d0d562ed6b093af5a07888bd528157c742c9402b0b9563c1061af21f1a9a5f0d34b39d084365348e9ff190b2590f6a80652bc247b4264dfba69354a1
|
7
|
+
data.tar.gz: 4747c95fc60e550c82590ff00a0fe2990ae095226cbb0ff298bab037fdf2b06aaf7d0502ade4d46092e4d1c2aab074df8b780a7c6df15800c6063e4eb1cd9924
|
data/ext/vdsp/vdsp.c
CHANGED
@@ -524,7 +524,9 @@ VALUE double_array_aset2(VALUE self, long beg, long len, VALUE val)
|
|
524
524
|
long new_len = alen - len + _b->length;
|
525
525
|
|
526
526
|
bool after_resize = false;
|
527
|
+
bool rear_move = true;
|
527
528
|
if (alen==new_len) {
|
529
|
+
rear_move = false;
|
528
530
|
} else if (alen<new_len) {
|
529
531
|
double_array_resize(_a, new_len);
|
530
532
|
_a->length = new_len;
|
@@ -532,7 +534,9 @@ VALUE double_array_aset2(VALUE self, long beg, long len, VALUE val)
|
|
532
534
|
after_resize = true;
|
533
535
|
}
|
534
536
|
|
535
|
-
|
537
|
+
if (rear_move) {
|
538
|
+
memmove(_a->v.d+beg+_b->length, _a->v.d+beg+len, sizeof(double) * (alen-beg-len));
|
539
|
+
}
|
536
540
|
memcpy(_a->v.d+beg, _b->v.d, sizeof(double) * _b->length);
|
537
541
|
|
538
542
|
if (after_resize) {
|
@@ -1076,6 +1080,35 @@ VALUE rb_double_biquad_apply(VALUE self, VALUE x)
|
|
1076
1080
|
|
1077
1081
|
// Vdsp static method
|
1078
1082
|
|
1083
|
+
// c[i] = a[i]
|
1084
|
+
VALUE rb_double_copy(
|
1085
|
+
VALUE cls,
|
1086
|
+
VALUE a, VALUE a_offset, VALUE a_stride,
|
1087
|
+
VALUE c, VALUE c_offset, VALUE c_stride,
|
1088
|
+
VALUE n)
|
1089
|
+
{
|
1090
|
+
VdspArrayParam _a;
|
1091
|
+
VdspArrayParam _c;
|
1092
|
+
|
1093
|
+
array_param(&_a, a, a_offset, a_stride);
|
1094
|
+
array_param(&_c, c, c_offset, c_stride);
|
1095
|
+
|
1096
|
+
vDSP_Length _n = NUM2LONG(n);
|
1097
|
+
|
1098
|
+
if (_a.stride==1 && _c.stride==1) {
|
1099
|
+
memmove(_c.res0->v.d+_c.offset, _a.res0->v.d+_a.offset, sizeof(double) * _n);
|
1100
|
+
} else {
|
1101
|
+
double _b = 0;
|
1102
|
+
vDSP_vsaddD(
|
1103
|
+
_a.res0->v.d+_a.offset, _a.stride,
|
1104
|
+
&_b,
|
1105
|
+
_c.res0->v.d+_c.offset, _c.stride,
|
1106
|
+
_n);
|
1107
|
+
}
|
1108
|
+
|
1109
|
+
return c;
|
1110
|
+
}
|
1111
|
+
|
1079
1112
|
// c[i] = a[i] + b
|
1080
1113
|
VALUE rb_double_vsadd(
|
1081
1114
|
VALUE cls,
|
@@ -2800,6 +2833,7 @@ void Init_vdsp()
|
|
2800
2833
|
|
2801
2834
|
// Vdsp::UnsafeDouble
|
2802
2835
|
rb_mUnsafeDouble = rb_define_module_under(rb_mVdsp, "UnsafeDouble");
|
2836
|
+
rb_define_singleton_method(rb_mUnsafeDouble, "copy", rb_double_copy, 7);
|
2803
2837
|
|
2804
2838
|
// Vdsp::UnsafeDouble Vector-based Arithmetic
|
2805
2839
|
rb_define_singleton_method(rb_mUnsafeDouble, "vsadd", rb_double_vsadd, 8);
|
data/lib/vdsp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vdsp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoshida Tetsuya
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|