Getting a list of altered fields when saving a node
The simple way of recalculating and update field without any effect of other field is hook_entity_update or code like display here.

&lt;?php
$entity_instance = entity_load('entity_name', array($id));
$entity_instance-&gt;field_myfield[LANGUAGE_NONE][0]['value']= 5;
$entity_instance-&gt;save();
?&gt;