slycot calls sg02ad_bc for `fact == 'D'` case. ```python diff --git a/slycot/synthesis.py b/slycot/synthesis.py index a0fa531..fd2cb42 100644 --- a/slycot/synthesis.py +++ b/slycot/synthesis.py @@ -2383,7 +2383,7 @@ def sg02ad(dico,jobb,fact,uplo,jobl,scal,sort,acc,N,M,P,A,E,B,Q,R,L,ldwork=None, elif (fact == 'C'): out = _wrapper.sg02ad_bc(dico,jobl,scal,sort,acc,N,M,P,A,E,B,Q,R,L,tol,ldwork) elif (fact == 'D'): - out = _wrapper.sg02ad_bc(dico,jobl,scal,sort,acc,N,M,P,A,E,B,Q,R,L,tol,ldwork) + out = _wrapper.sg02ad_bd(dico,jobl,scal,sort,acc,N,M,P,A,E,B,Q,R,L,tol,ldwork) elif (fact == 'B'): out = _wrapper.sg02ad_bb(dico,jobl,scal,sort,acc,N,M,P,A,E,B,Q,R,L,tol,ldwork) ``` Additionally SLICOT has a scaling bug for `FACT='C'` (and other cases too); see https://github.com/SLICOT/SLICOT-Reference/issues/46 . To fix: - add test cases for various `fact` variations - pull in latest upstream SLICOT
Activity