code: def param_array(self):
          
          if (self.__dict__.get('_param_array_', None) is None) or (self._param_array_.size != self.size):
              self._param_array_ = np.empty(self.size, dtype=np.float64)
          return self._param_array_
docs: Array representing the parameters of this class.
          There is only one copy of all parameters in memory, two during optimization.
  
          !WARNING!: setting the parameter array MUST always be done in memory:
          m.param_array[:] = m_copy.param_array