>>> import numpy as np
>>> from scipy.sparse import coo_matrix
>>> from scipy.sparse import tril
>>> from pyomo.contrib.pynumero.linalg.ma27_interface import MA27
>>> row = np.array([0, 1, 0, 1, 0, 1, 2, 3, 3, 4, 4, 4])
>>> col = np.array([0, 1, 3, 3, 4, 4, 4, 0, 1, 0, 1, 2])
>>> data = np.array([1.67025575, 2, -1.64872127, 1, -1, -1, -1, -1.64872127, 1, -1, -1, -1])
>>> A = coo_matrix((data, (row, col)), shape=(5,5))
>>> A.toarray()
array([[ 1.67025575, 0. , 0. , -1.64872127, -1. ],
[ 0. , 2. , 0. , 1. , -1. ],
[ 0. , 0. , 0. , 0. , -1. ],
[-1.64872127, 1. , 0. , 0. , 0. ],
[-1. , -1. , -1. , 0. , 0. ]])
>>> rhs = np.array([-0.67025575, -1.2, 0.1, 1.14872127, 1.25])
>>> solver = MA27()
>>> solver.set_cntl(1, 1e-6) # set the pivot tolerance
>>> status = solver.do_symbolic_factorization(A)
>>> status = solver.do_numeric_factorization(A)
>>> x, status = solver.do_back_solve(rhs)
>>> np.max(np.abs(A*x - rhs)) <= 1e-15
np.True_