void KKT ( const SparseMatrix<Real>& A, const SparseMatrix<Real>& G, const Matrix<Real>& s, const Matrix<Real>& z, SparseMatrix<Real>& J, bool onlyLower ) { EL_DEBUG_CSE const Int n = A.Width(); SparseMatrix<Real> Q; Q.Resize( n, n ); qp::affine::KKT( Q, A, G, s, z, J, onlyLower ); }
void StaticKKT ( const SparseMatrix<Real>& A, const SparseMatrix<Real>& G, Real gamma, Real delta, Real beta, SparseMatrix<Real>& J, bool onlyLower ) { EL_DEBUG_CSE const Int n = A.Width(); SparseMatrix<Real> Q; Q.Resize( n, n ); qp::affine::StaticKKT( Q, A, G, gamma, delta, beta, J, onlyLower ); }
void KKT ( const SparseMatrix<Real>& A, Real gamma, Real delta, Real beta, const Matrix<Real>& x, const Matrix<Real>& z, SparseMatrix<Real>& J, bool onlyLower ) { EL_DEBUG_CSE const Int n = A.Width(); SparseMatrix<Real> Q; Q.Resize( n, n ); qp::direct::KKT( Q, A, gamma, delta, beta, x, z, J, onlyLower ); }
void Fill( SparseMatrix<T>& A, T alpha ) { EL_DEBUG_CSE const Int m = A.Height(); const Int n = A.Width(); A.Resize( m, n ); Zero( A ); if( alpha != T(0) ) { A.Reserve( m*n ); for( Int i=0; i<m; ++i ) for( Int j=0; j<n; ++j ) A.QueueUpdate( i, j, alpha ); A.ProcessQueues(); } }
void Zeros( SparseMatrix<T>& A, Int m, Int n ) { DEBUG_ONLY(CSE cse("Zeros")) A.Resize( m, n ); Zero( A ); }