vdsp 1.1.0 → 1.2.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/ext/vdsp/vdsp.c +501 -2
  3. data/lib/vdsp/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50e5afc6c77efe02018bb00ac5230314720a0acfaf05b16f11d1a6c433e217bb
4
- data.tar.gz: a57db55e31965d2537063e2908199b081fe9e8a9c6550e497167ef79105e5690
3
+ metadata.gz: 3025c810d13e2fe874cdba89cecf0a4fb8dd1c9415ddd3c45fd5871ef5d42843
4
+ data.tar.gz: 8db6933119c952074264f242c734d5b61b9573bd82625c42bab2b4f4af275eb9
5
5
  SHA512:
6
- metadata.gz: 3621a0a8bf3ac34d55da048cf72700b366e80f61015c067c566391fa39c123b96fccbb349504db068f530c9053576615e9afe0ed33d52749926a0e48f594ce06
7
- data.tar.gz: fa30615c21d524d158ff89bf242494da3d72d04bff1030cbd3fa7ea74ac61b6ec4865c2a9930584c038e7eeb475ffb112a0bfcd95feea3cce896c2a4efe66d86
6
+ metadata.gz: 8f0e386529e000782c005582ce7829cb5ca6ac57856a5c7053e3cac18b3dc87c2258c36f935a16d11de2c1539597ca5d2a6eab7b633f6079b43340fc46bb1b3d
7
+ data.tar.gz: b3ab73efc0f4f4df4c090c656f826f9bbfb693bcb04c0ecdbb548ef8307ecee111107cc4246d4230a26accaa5bb697bca460bdcbeeeadfd0022f138b1d4ab041
data/ext/vdsp/vdsp.c CHANGED
@@ -467,6 +467,134 @@ VALUE rb_double_array_hann_window(int argc, VALUE *argv, VALUE cls)
467
467
  return c;
468
468
  }
469
469
 
470
+ VALUE rb_double_array_vclr(VALUE self)
471
+ {
472
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
473
+ vDSP_vclrD(p->v.d, 1, p->length);
474
+ return self;
475
+ }
476
+
477
+ VALUE rb_double_array_vfill(VALUE self, VALUE a)
478
+ {
479
+ double _a = NUM2DBL(a);
480
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
481
+ vDSP_vfillD(&_a, p->v.d, 1, p->length);
482
+ return self;
483
+ }
484
+
485
+ VALUE rb_double_array_maxv(VALUE self)
486
+ {
487
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
488
+ double _c;
489
+ vDSP_maxvD(p->v.d, 1, &_c, p->length);
490
+ return DBL2NUM(_c);
491
+ }
492
+
493
+ VALUE rb_double_array_maxmgv(VALUE self)
494
+ {
495
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
496
+ double _c;
497
+ vDSP_maxmgvD(p->v.d, 1, &_c, p->length);
498
+ return DBL2NUM(_c);
499
+ }
500
+
501
+ VALUE rb_double_array_minv(VALUE self)
502
+ {
503
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
504
+ double _c;
505
+ vDSP_minvD(p->v.d, 1, &_c, p->length);
506
+ return DBL2NUM(_c);
507
+ }
508
+
509
+ VALUE rb_double_array_minmgv(VALUE self)
510
+ {
511
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
512
+ double _c;
513
+ vDSP_minmgvD(p->v.d, 1, &_c, p->length);
514
+ return DBL2NUM(_c);
515
+ }
516
+
517
+ VALUE rb_double_array_meanv(VALUE self)
518
+ {
519
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
520
+ double _c;
521
+ vDSP_meanvD(p->v.d, 1, &_c, p->length);
522
+ return DBL2NUM(_c);
523
+ }
524
+
525
+ VALUE rb_double_array_meamgv(VALUE self)
526
+ {
527
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
528
+ double _c;
529
+ vDSP_meamgvD(p->v.d, 1, &_c, p->length);
530
+ return DBL2NUM(_c);
531
+ }
532
+
533
+ VALUE rb_double_array_measqv(VALUE self)
534
+ {
535
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
536
+ double _c;
537
+ vDSP_measqvD(p->v.d, 1, &_c, p->length);
538
+ return DBL2NUM(_c);
539
+ }
540
+
541
+ VALUE rb_double_array_mvessq(VALUE self)
542
+ {
543
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
544
+ double _c;
545
+ vDSP_mvessqD(p->v.d, 1, &_c, p->length);
546
+ return DBL2NUM(_c);
547
+ }
548
+
549
+ VALUE rb_double_array_rmsqv(VALUE self)
550
+ {
551
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
552
+ double _c;
553
+ vDSP_rmsqvD(p->v.d, 1, &_c, p->length);
554
+ return DBL2NUM(_c);
555
+ }
556
+
557
+ VALUE rb_double_array_sve(VALUE self)
558
+ {
559
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
560
+ double _c;
561
+ vDSP_sveD(p->v.d, 1, &_c, p->length);
562
+ return DBL2NUM(_c);
563
+ }
564
+
565
+ VALUE rb_double_array_svemg(VALUE self)
566
+ {
567
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
568
+ double _c;
569
+ vDSP_svemgD(p->v.d, 1, &_c, p->length);
570
+ return DBL2NUM(_c);
571
+ }
572
+
573
+ VALUE rb_double_array_svesq(VALUE self)
574
+ {
575
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
576
+ double _c;
577
+ vDSP_svesqD(p->v.d, 1, &_c, p->length);
578
+ return DBL2NUM(_c);
579
+ }
580
+
581
+ VALUE rb_double_array_sve_svesq(VALUE self)
582
+ {
583
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
584
+ double _sum;
585
+ double _sum_of_squares;
586
+ vDSP_sve_svesqD(p->v.d, 1, &_sum, &_sum_of_squares, p->length);
587
+ return rb_assoc_new(DBL2NUM(_sum), DBL2NUM(_sum_of_squares));
588
+ }
589
+
590
+ VALUE rb_double_array_svs(VALUE self)
591
+ {
592
+ VdspArrayNativeResource *p = get_vdsp_array_native_resource(self);
593
+ double _c;
594
+ vDSP_svsD(p->v.d, 1, &_c, p->length);
595
+ return DBL2NUM(_c);
596
+ }
597
+
470
598
 
471
599
  // Vdsp static method
472
600
 
@@ -1447,6 +1575,327 @@ VALUE rb_double_hann_window(VALUE cls, VALUE c, VALUE n, VALUE flag)
1447
1575
  return c;
1448
1576
  }
1449
1577
 
1578
+ VALUE rb_double_vclr(
1579
+ VALUE cls,
1580
+ VALUE c, VALUE c_offset, VALUE c_stride,
1581
+ VALUE n)
1582
+ {
1583
+ VdspArrayParam _c;
1584
+
1585
+ array_param(&_c, c, c_offset, c_stride);
1586
+ vDSP_Stride _n = NUM2LONG(n);
1587
+
1588
+ vDSP_vclrD(
1589
+ _c.res0->v.d+_c.offset, _c.stride,
1590
+ _n
1591
+ );
1592
+
1593
+ return c;
1594
+ }
1595
+
1596
+ VALUE rb_double_vfill(
1597
+ VALUE cls,
1598
+ VALUE a,
1599
+ VALUE c, VALUE c_offset, VALUE c_stride,
1600
+ VALUE n)
1601
+ {
1602
+ VdspArrayParam _c;
1603
+
1604
+ double _a = NUM2DBL(a);
1605
+ array_param(&_c, c, c_offset, c_stride);
1606
+ vDSP_Stride _n = NUM2LONG(n);
1607
+
1608
+ vDSP_vfillD(
1609
+ &_a,
1610
+ _c.res0->v.d+_c.offset, _c.stride,
1611
+ _n
1612
+ );
1613
+
1614
+ return c;
1615
+ }
1616
+
1617
+ VALUE rb_double_maxv(
1618
+ VALUE cls,
1619
+ VALUE a, VALUE a_offset, VALUE a_stride,
1620
+ VALUE n)
1621
+ {
1622
+ VdspArrayParam _a;
1623
+ double _c;
1624
+
1625
+ array_param(&_a, a, a_offset, a_stride);
1626
+ vDSP_Stride _n = NUM2LONG(n);
1627
+
1628
+ vDSP_maxvD(
1629
+ _a.res0->v.d+_a.offset, _a.stride,
1630
+ &_c,
1631
+ _n
1632
+ );
1633
+
1634
+ return DBL2NUM(_c);
1635
+ }
1636
+
1637
+ VALUE rb_double_maxmgv(
1638
+ VALUE cls,
1639
+ VALUE a, VALUE a_offset, VALUE a_stride,
1640
+ VALUE n)
1641
+ {
1642
+ VdspArrayParam _a;
1643
+ double _c;
1644
+
1645
+ array_param(&_a, a, a_offset, a_stride);
1646
+ vDSP_Stride _n = NUM2LONG(n);
1647
+
1648
+ vDSP_maxmgvD(
1649
+ _a.res0->v.d+_a.offset, _a.stride,
1650
+ &_c,
1651
+ _n
1652
+ );
1653
+
1654
+ return DBL2NUM(_c);
1655
+ }
1656
+
1657
+ VALUE rb_double_minv(
1658
+ VALUE cls,
1659
+ VALUE a, VALUE a_offset, VALUE a_stride,
1660
+ VALUE n)
1661
+ {
1662
+ VdspArrayParam _a;
1663
+ double _c;
1664
+
1665
+ array_param(&_a, a, a_offset, a_stride);
1666
+ vDSP_Stride _n = NUM2LONG(n);
1667
+
1668
+ vDSP_minvD(
1669
+ _a.res0->v.d+_a.offset, _a.stride,
1670
+ &_c,
1671
+ _n
1672
+ );
1673
+
1674
+ return DBL2NUM(_c);
1675
+ }
1676
+
1677
+ VALUE rb_double_minmgv(
1678
+ VALUE cls,
1679
+ VALUE a, VALUE a_offset, VALUE a_stride,
1680
+ VALUE n)
1681
+ {
1682
+ VdspArrayParam _a;
1683
+ double _c;
1684
+
1685
+ array_param(&_a, a, a_offset, a_stride);
1686
+ vDSP_Stride _n = NUM2LONG(n);
1687
+
1688
+ vDSP_minmgvD(
1689
+ _a.res0->v.d+_a.offset, _a.stride,
1690
+ &_c,
1691
+ _n
1692
+ );
1693
+
1694
+ return DBL2NUM(_c);
1695
+ }
1696
+
1697
+ VALUE rb_double_meanv(
1698
+ VALUE cls,
1699
+ VALUE a, VALUE a_offset, VALUE a_stride,
1700
+ VALUE n)
1701
+ {
1702
+ VdspArrayParam _a;
1703
+ double _c;
1704
+
1705
+ array_param(&_a, a, a_offset, a_stride);
1706
+ vDSP_Stride _n = NUM2LONG(n);
1707
+
1708
+ vDSP_meanvD(
1709
+ _a.res0->v.d+_a.offset, _a.stride,
1710
+ &_c,
1711
+ _n
1712
+ );
1713
+
1714
+ return DBL2NUM(_c);
1715
+ }
1716
+
1717
+ VALUE rb_double_meamgv(
1718
+ VALUE cls,
1719
+ VALUE a, VALUE a_offset, VALUE a_stride,
1720
+ VALUE n)
1721
+ {
1722
+ VdspArrayParam _a;
1723
+ double _c;
1724
+
1725
+ array_param(&_a, a, a_offset, a_stride);
1726
+ vDSP_Stride _n = NUM2LONG(n);
1727
+
1728
+ vDSP_meamgvD(
1729
+ _a.res0->v.d+_a.offset, _a.stride,
1730
+ &_c,
1731
+ _n
1732
+ );
1733
+
1734
+ return DBL2NUM(_c);
1735
+ }
1736
+
1737
+ VALUE rb_double_measqv(
1738
+ VALUE cls,
1739
+ VALUE a, VALUE a_offset, VALUE a_stride,
1740
+ VALUE n)
1741
+ {
1742
+ VdspArrayParam _a;
1743
+ double _c;
1744
+
1745
+ array_param(&_a, a, a_offset, a_stride);
1746
+ vDSP_Stride _n = NUM2LONG(n);
1747
+
1748
+ vDSP_measqvD(
1749
+ _a.res0->v.d+_a.offset, _a.stride,
1750
+ &_c,
1751
+ _n
1752
+ );
1753
+
1754
+ return DBL2NUM(_c);
1755
+ }
1756
+
1757
+ VALUE rb_double_mvessq(
1758
+ VALUE cls,
1759
+ VALUE a, VALUE a_offset, VALUE a_stride,
1760
+ VALUE n)
1761
+ {
1762
+ VdspArrayParam _a;
1763
+ double _c;
1764
+
1765
+ array_param(&_a, a, a_offset, a_stride);
1766
+ vDSP_Stride _n = NUM2LONG(n);
1767
+
1768
+ vDSP_mvessqD(
1769
+ _a.res0->v.d+_a.offset, _a.stride,
1770
+ &_c,
1771
+ _n
1772
+ );
1773
+
1774
+ return DBL2NUM(_c);
1775
+ }
1776
+
1777
+ VALUE rb_double_rmsqv(
1778
+ VALUE cls,
1779
+ VALUE a, VALUE a_offset, VALUE a_stride,
1780
+ VALUE n)
1781
+ {
1782
+ VdspArrayParam _a;
1783
+ double _c;
1784
+
1785
+ array_param(&_a, a, a_offset, a_stride);
1786
+ vDSP_Stride _n = NUM2LONG(n);
1787
+
1788
+ vDSP_rmsqvD(
1789
+ _a.res0->v.d+_a.offset, _a.stride,
1790
+ &_c,
1791
+ _n
1792
+ );
1793
+
1794
+ return DBL2NUM(_c);
1795
+ }
1796
+
1797
+ VALUE rb_double_sve(
1798
+ VALUE cls,
1799
+ VALUE a, VALUE a_offset, VALUE a_stride,
1800
+ VALUE n)
1801
+ {
1802
+ VdspArrayParam _a;
1803
+ double _c;
1804
+
1805
+ array_param(&_a, a, a_offset, a_stride);
1806
+ vDSP_Stride _n = NUM2LONG(n);
1807
+
1808
+ vDSP_sveD(
1809
+ _a.res0->v.d+_a.offset, _a.stride,
1810
+ &_c,
1811
+ _n
1812
+ );
1813
+
1814
+ return DBL2NUM(_c);
1815
+ }
1816
+
1817
+ VALUE rb_double_svemg(
1818
+ VALUE cls,
1819
+ VALUE a, VALUE a_offset, VALUE a_stride,
1820
+ VALUE n)
1821
+ {
1822
+ VdspArrayParam _a;
1823
+ double _c;
1824
+
1825
+ array_param(&_a, a, a_offset, a_stride);
1826
+ vDSP_Stride _n = NUM2LONG(n);
1827
+
1828
+ vDSP_svemgD(
1829
+ _a.res0->v.d+_a.offset, _a.stride,
1830
+ &_c,
1831
+ _n
1832
+ );
1833
+
1834
+ return DBL2NUM(_c);
1835
+ }
1836
+
1837
+ VALUE rb_double_svesq(
1838
+ VALUE cls,
1839
+ VALUE a, VALUE a_offset, VALUE a_stride,
1840
+ VALUE n)
1841
+ {
1842
+ VdspArrayParam _a;
1843
+ double _c;
1844
+
1845
+ array_param(&_a, a, a_offset, a_stride);
1846
+ vDSP_Stride _n = NUM2LONG(n);
1847
+
1848
+ vDSP_svesqD(
1849
+ _a.res0->v.d+_a.offset, _a.stride,
1850
+ &_c,
1851
+ _n
1852
+ );
1853
+
1854
+ return DBL2NUM(_c);
1855
+ }
1856
+
1857
+ VALUE rb_double_sve_svesq(
1858
+ VALUE cls,
1859
+ VALUE a, VALUE a_offset, VALUE a_stride,
1860
+ VALUE n)
1861
+ {
1862
+ VdspArrayParam _a;
1863
+ double _sum;
1864
+ double _sum_of_squares;
1865
+
1866
+ array_param(&_a, a, a_offset, a_stride);
1867
+ vDSP_Stride _n = NUM2LONG(n);
1868
+
1869
+ vDSP_sve_svesqD(
1870
+ _a.res0->v.d+_a.offset, _a.stride,
1871
+ &_sum,
1872
+ &_sum_of_squares,
1873
+ _n
1874
+ );
1875
+
1876
+ return rb_assoc_new(DBL2NUM(_sum), DBL2NUM(_sum_of_squares));
1877
+ }
1878
+
1879
+ VALUE rb_double_svs(
1880
+ VALUE cls,
1881
+ VALUE a, VALUE a_offset, VALUE a_stride,
1882
+ VALUE n)
1883
+ {
1884
+ VdspArrayParam _a;
1885
+ double _c;
1886
+
1887
+ array_param(&_a, a, a_offset, a_stride);
1888
+ vDSP_Stride _n = NUM2LONG(n);
1889
+
1890
+ vDSP_svsD(
1891
+ _a.res0->v.d+_a.offset, _a.stride,
1892
+ &_c,
1893
+ _n
1894
+ );
1895
+
1896
+ return DBL2NUM(_c);
1897
+ }
1898
+
1450
1899
 
1451
1900
  // Init
1452
1901
 
@@ -1488,16 +1937,42 @@ void Init_vdsp()
1488
1937
  rb_define_method(rb_cDoubleArray, "[]=", rb_double_array_aset, 2);
1489
1938
  rb_define_method(rb_cDoubleArray, "to_a", rb_double_array_get_values, 0);
1490
1939
  rb_define_method(rb_cDoubleArray, "coerce", rb_double_array_coerce, 1);
1940
+
1941
+ // Vdsp::DoubleArray Vector Generation
1491
1942
  rb_define_singleton_method(rb_cDoubleArray, "vramp", rb_double_array_vramp, 3);
1492
1943
  rb_define_singleton_method(rb_cDoubleArray, "vgen", rb_double_array_vgen, 3);
1493
1944
  rb_define_singleton_method(rb_cDoubleArray, "blkman_window", rb_double_array_blkman_window, -1);
1494
1945
  rb_define_singleton_method(rb_cDoubleArray, "hamm_window", rb_double_array_hamm_window, -1);
1495
1946
  rb_define_singleton_method(rb_cDoubleArray, "hann_window", rb_double_array_hann_window, -1);
1496
1947
 
1948
+ // Vdsp::DoubleArray Vector Clear and Fill Functions
1949
+ rb_define_method(rb_cDoubleArray, "vclr", rb_double_array_vclr, 0);
1950
+ rb_define_method(rb_cDoubleArray, "vfill", rb_double_array_vfill, 1);
1951
+
1952
+ // Vdsp::DoubleArray Vector Extrema Calculation
1953
+ rb_define_method(rb_cDoubleArray, "maxv", rb_double_array_maxv, 0);
1954
+ rb_define_method(rb_cDoubleArray, "maxmgv", rb_double_array_maxmgv, 0);
1955
+ rb_define_method(rb_cDoubleArray, "minv", rb_double_array_minv, 0);
1956
+ rb_define_method(rb_cDoubleArray, "minmgv", rb_double_array_minmgv, 0);
1957
+
1958
+ // Vdsp::DoubleArray Vector Average Calculation
1959
+ rb_define_method(rb_cDoubleArray, "meanv", rb_double_array_meanv, 0);
1960
+ rb_define_method(rb_cDoubleArray, "meamgv", rb_double_array_meamgv, 0);
1961
+ rb_define_method(rb_cDoubleArray, "measqv", rb_double_array_measqv, 0);
1962
+ rb_define_method(rb_cDoubleArray, "mvessq", rb_double_array_mvessq, 0);
1963
+ rb_define_method(rb_cDoubleArray, "rmsqv", rb_double_array_rmsqv, 0);
1964
+
1965
+ // Vdsp::DoubleArray Vector Summation
1966
+ rb_define_method(rb_cDoubleArray, "sve", rb_double_array_sve, 0);
1967
+ rb_define_method(rb_cDoubleArray, "svemg", rb_double_array_svemg, 0);
1968
+ rb_define_method(rb_cDoubleArray, "svesq", rb_double_array_svesq, 0);
1969
+ rb_define_method(rb_cDoubleArray, "sve_svesq", rb_double_array_sve_svesq, 0);
1970
+ rb_define_method(rb_cDoubleArray, "svs", rb_double_array_svs, 0);
1971
+
1497
1972
  // Vdsp::UnsafeDouble
1498
1973
  rb_mUnsafeDouble = rb_define_module_under(rb_mVdsp, "UnsafeDouble");
1499
1974
 
1500
- // Vector-based Arithmetic
1975
+ // Vdsp::UnsafeDouble Vector-based Arithmetic
1501
1976
  rb_define_singleton_method(rb_mUnsafeDouble, "vsadd", rb_double_vsadd, 8);
1502
1977
  rb_define_singleton_method(rb_mUnsafeDouble, "vadd", rb_double_vadd, 10);
1503
1978
  rb_define_singleton_method(rb_mUnsafeDouble, "vsub", rb_double_vsub, 10);
@@ -1521,7 +1996,7 @@ void Init_vdsp()
1521
1996
  rb_define_singleton_method(rb_mUnsafeDouble, "vsbsbm", rb_double_vsbsbm, -1);
1522
1997
  rb_define_singleton_method(rb_mUnsafeDouble, "vasbm", rb_double_vasbm, -1);
1523
1998
 
1524
- // Vector Generation
1999
+ // Vdsp::UnsafeDouble Vector Generation
1525
2000
  rb_define_singleton_method(rb_mUnsafeDouble, "vramp", rb_double_vramp, 6);
1526
2001
  rb_define_singleton_method(rb_mUnsafeDouble, "vgen", rb_double_vgen, 6);
1527
2002
  rb_define_singleton_method(rb_mUnsafeDouble, "vrampmul", rb_double_vrampmul, 9);
@@ -1533,4 +2008,28 @@ void Init_vdsp()
1533
2008
  rb_define_singleton_method(rb_mUnsafeDouble, "blkman_window", rb_double_blkman_window, 3);
1534
2009
  rb_define_singleton_method(rb_mUnsafeDouble, "hamm_window", rb_double_hamm_window, 3);
1535
2010
  rb_define_singleton_method(rb_mUnsafeDouble, "hann_window", rb_double_hann_window, 3);
2011
+
2012
+ // Vdsp::UnsafeDouble Vector Clear and Fill Functions
2013
+ rb_define_singleton_method(rb_mUnsafeDouble, "vclr", rb_double_vclr, 4);
2014
+ rb_define_singleton_method(rb_mUnsafeDouble, "vfill", rb_double_vfill, 5);
2015
+
2016
+ // Vdsp::UnsafeDouble Vector Extrema Calculation
2017
+ rb_define_singleton_method(rb_mUnsafeDouble, "maxv", rb_double_maxv, 4);
2018
+ rb_define_singleton_method(rb_mUnsafeDouble, "maxmgv", rb_double_maxmgv, 4);
2019
+ rb_define_singleton_method(rb_mUnsafeDouble, "minv", rb_double_minv, 4);
2020
+ rb_define_singleton_method(rb_mUnsafeDouble, "minmgv", rb_double_minmgv, 4);
2021
+
2022
+ // Vdsp::UnsafeDouble Vector Average Calculation
2023
+ rb_define_singleton_method(rb_mUnsafeDouble, "meanv", rb_double_meanv, 4);
2024
+ rb_define_singleton_method(rb_mUnsafeDouble, "meamgv", rb_double_meamgv, 4);
2025
+ rb_define_singleton_method(rb_mUnsafeDouble, "measqv", rb_double_measqv, 4);
2026
+ rb_define_singleton_method(rb_mUnsafeDouble, "mvessq", rb_double_mvessq, 4);
2027
+ rb_define_singleton_method(rb_mUnsafeDouble, "rmsqv", rb_double_rmsqv, 4);
2028
+
2029
+ // Vdsp::UnsafeDouble Vector Summation
2030
+ rb_define_singleton_method(rb_mUnsafeDouble, "sve", rb_double_sve, 4);
2031
+ rb_define_singleton_method(rb_mUnsafeDouble, "svemg", rb_double_svemg, 4);
2032
+ rb_define_singleton_method(rb_mUnsafeDouble, "svesq", rb_double_svesq, 4);
2033
+ rb_define_singleton_method(rb_mUnsafeDouble, "sve_svesq", rb_double_sve_svesq, 4);
2034
+ rb_define_singleton_method(rb_mUnsafeDouble, "svs", rb_double_svs, 4);
1536
2035
  }
data/lib/vdsp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vdsp
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vdsp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshida