Programming memristor arrays with arbitrarily high precision for analog computing | Synapse