@@ -1488,8 +1488,8 @@ size_t gehrd(T)(
1488
1488
Slice! (T* , 2 , Canonical) a,
1489
1489
Slice! (T* ) tau,
1490
1490
Slice! (T* ) work,
1491
- lapackint* ilo,
1492
- lapackint* ihi
1491
+ lapackint ilo,
1492
+ lapackint ihi
1493
1493
)
1494
1494
in
1495
1495
{
@@ -1520,18 +1520,16 @@ size_t hsein(T)(
1520
1520
char side,
1521
1521
char eigsrc,
1522
1522
char initv,
1523
- lapackint* select, // actually a logical bitset stored in here
1523
+ ref lapackint select, // actually a logical bitset stored in here
1524
1524
Slice! (T* , 2 , Canonical) h,
1525
1525
Slice! (T* ) wr,
1526
1526
Slice! (T* ) wi,
1527
1527
Slice! (T* , 2 , Canonical) vl,
1528
1528
Slice! (T* , 2 , Canonical) vr,
1529
- lapackint* m,
1529
+ ref lapackint m,
1530
1530
Slice! (T* ) work,
1531
- lapackint* ifaill,
1532
- lapackint* ifailr,
1533
- lapackint* ilo,
1534
- lapackint* ihi,
1531
+ ref lapackint ifaill,
1532
+ ref lapackint ifailr,
1535
1533
)
1536
1534
if (! isComplex! T)
1537
1535
in
@@ -1576,31 +1574,29 @@ do
1576
1574
lapackint ldvl = cast (lapackint) vl._stride.max(1 );
1577
1575
lapackint ldvr = cast (lapackint) vr._stride.max(1 );
1578
1576
// need to seperate these methods then probably provide a wrap which does this as that's the easiest way without bloating the base methods
1579
- lapack.hsein_(side, eigsrc, initv, select, n, h.iterator, ldh, wr.iterator, wi.iterator, vl.iterator, ldvl, vr.iterator, ldvr, mm, * m, work.iterator, ifaill, ifailr, info);
1577
+ lapack.hsein_(side, eigsrc, initv, select, n, h.iterator, ldh, wr.iterator, wi.iterator, vl.iterator, ldvl, vr.iterator, ldvr, mm, m, work.iterator, ifaill, ifailr, info);
1580
1578
assert (info >= 0 );
1581
1579
// /if any of ifaill or ifailr entries are non-zero then that has failed to converge.
1582
1580
// /ifail?[i] = j > 0 if the eigenvector stored in the i-th column of v?, coresponding to the jth eigenvalue, fails to converge.
1583
- assert (* ifaill == 0 );
1584
- assert (* ifailr == 0 );
1581
+ assert (ifaill == 0 );
1582
+ assert (ifailr == 0 );
1585
1583
return info;
1586
1584
}
1587
1585
1588
1586
size_t hsein (T, realT)(
1589
1587
char side,
1590
1588
char eigsrc,
1591
1589
char initv,
1592
- lapackint* select, // actually a logical bitset stored in here
1590
+ lapackint select, // actually a logical bitset stored in here
1593
1591
Slice! (T* , 2 , Canonical) h,
1594
1592
Slice! (T* ) w,
1595
1593
Slice! (T* , 2 , Canonical) vl,
1596
1594
Slice! (T* , 2 , Canonical) vr,
1597
1595
lapackint* m,
1598
1596
Slice! (T* ) work,
1599
1597
Slice! (realT* ) rwork,
1600
- lapackint* ifaill,
1601
- lapackint* ifailr,
1602
- lapackint* ilo,
1603
- lapackint* ihi,
1598
+ lapackint ifaill,
1599
+ lapackint ifailr,
1604
1600
)
1605
1601
if (isComplex! T && is (realType! T == realT))
1606
1602
in
@@ -1642,8 +1638,8 @@ do {
1642
1638
assert (info >= 0 );
1643
1639
// /if any of ifaill or ifailr entries are non-zero then that has failed to converge.
1644
1640
// /ifail?[i] = j > 0 if the eigenvector stored in the i-th column of v?, coresponding to the jth eigenvalue, fails to converge.
1645
- assert (* ifaill == 0 );
1646
- assert (* ifailr == 0 );
1641
+ assert (ifaill == 0 );
1642
+ assert (ifailr == 0 );
1647
1643
return info;
1648
1644
}
1649
1645
@@ -1666,8 +1662,8 @@ size_t unmhr(T)(
1666
1662
Slice! (T* ) tau,
1667
1663
Slice! (T* , 2 , Canonical) c,
1668
1664
Slice! (T* ) work,
1669
- lapackint* ilo,
1670
- lapackint* ihi
1665
+ lapackint ilo,
1666
+ lapackint ihi
1671
1667
)
1672
1668
in
1673
1669
{
@@ -1725,8 +1721,8 @@ size_t hseqr(T)(
1725
1721
Slice! (T* ) w,
1726
1722
Slice! (T* , 2 , Canonical) z,
1727
1723
Slice! (T* ) work,
1728
- lapackint* ilo,
1729
- lapackint* ihi
1724
+ lapackint ilo,
1725
+ lapackint ihi
1730
1726
)
1731
1727
if (isComplex! T)
1732
1728
in
@@ -1760,8 +1756,8 @@ size_t hseqr(T)(
1760
1756
Slice! (T* ) wi,
1761
1757
Slice! (T* , 2 , Canonical) z,
1762
1758
Slice! (T* ) work,
1763
- lapackint* ilo,
1764
- lapackint* ihi
1759
+ lapackint ilo,
1760
+ lapackint ihi
1765
1761
)
1766
1762
if (! isComplex! T)
1767
1763
in
@@ -1801,7 +1797,7 @@ size_t trevc(T)(char side,
1801
1797
Slice! (T* , 2 , Canonical) t,
1802
1798
Slice! (T* , 2 , Canonical) vl,
1803
1799
Slice! (T* , 2 , Canonical) vr,
1804
- lapackint* m,
1800
+ lapackint m,
1805
1801
Slice! (T* ) work
1806
1802
)
1807
1803
do
@@ -1814,10 +1810,10 @@ do
1814
1810
// select should be lapack_logical
1815
1811
lapackint info;
1816
1812
static if (! isComplex! T){
1817
- lapack.trevc_(side, howmany, & select, n, t.iterator, ldt, vl.iterator, ldvl, vr.iterator, ldvr, mm, * m, work.iterator, info);
1813
+ lapack.trevc_(side, howmany, select, n, t.iterator, ldt, vl.iterator, ldvl, vr.iterator, ldvr, mm, m, work.iterator, info);
1818
1814
}
1819
1815
else {
1820
- lapack.trevc_(side, howmany, & select, n, t.iterator, ldt, vl.iterator, ldvl, vr.iterator, ldvr, mm, * m, work.iterator, null , info);
1816
+ lapack.trevc_(side, howmany, select, n, t.iterator, ldt, vl.iterator, ldvl, vr.iterator, ldvr, mm, m, work.iterator, null , info);
1821
1817
}
1822
1818
assert (info >= 0 );
1823
1819
return cast (size_t )info;
@@ -1838,8 +1834,8 @@ alias complexType(T : isComplex!T) = T;
1838
1834
1839
1835
size_t gebal (T, realT)(char job,
1840
1836
Slice! (T* , 2 , Canonical) a,
1841
- lapackint* ilo,
1842
- lapackint* ihi,
1837
+ lapackint ilo,
1838
+ lapackint ihi,
1843
1839
Slice! (realT* ) scale
1844
1840
)
1845
1841
if (! isComplex! T || (isComplex! T && is (realType! T == realT)))
@@ -1863,8 +1859,8 @@ unittest
1863
1859
size_t gebak (T, realT)(
1864
1860
char job,
1865
1861
char side,
1866
- lapackint* ilo,
1867
- lapackint* ihi,
1862
+ lapackint ilo,
1863
+ lapackint ihi,
1868
1864
Slice! (realT* ) scale,
1869
1865
Slice! (T* , 2 , Canonical) v
1870
1866
)
0 commit comments