class_docstr: Linear vector function and its derivatives.
  
  Defines a linear function F = A x, where x is N-D vector and
  A is m-by-n matrix. The Jacobian is constant and equals to A. The Hessian
  is identically zero and it is returned as a csr matrix.
class_docstr_tok: ["Linear","vector","function","and","its","derivatives",".","Defines","a","linear","function","F","=","A","x",",","where","x","is","N-D","vector","and","A","is","m-by-n","matrix",".","The","Jacobian","is","constant","and","equals","to","A",".","The","Hessian","is","identically","zero","and","it","is","returned","as","a","csr","matrix","."]
code: def __init__(self, A, x0, sparse_jacobian):
      if sparse_jacobian or sparse_jacobian is None and sps.issparse(A):
          self.J = sps.csr_matrix(A)
          self.sparse_jacobian = True
      elif sps.issparse(A):
          self.J = A.toarray()
          self.sparse_jacobian = False
      else:
          # np.asarray makes sure A is ndarray and not matrix
          self.J = np.atleast_2d(np.asarray(A))
          self.sparse_jacobian = False
  
      self.m, self.n = self.J.shape
  
      self.x = np.atleast_1d(x0).astype(float)
      self.f = self.J.dot(self.x)
      self.f_updated = True
  
      self.v = np.zeros(self.m, dtype=float)
      self.H = sps.csr_matrix((self.n, self.n))
  
imports: import numpy
  import scipy.sparse
  from ._numdiff import approx_derivative, group_columns
  from ._hessian_update_strategy import HessianUpdateStrategy
  from scipy.sparse.linalg import LinearOperator
label_desc: Use image node_id 1 to create a new LinearVectorFunction object  with example: obj = LinearVectorFunction(A, x0, sparse_jacobian)