Dynamic data type refinement methodology for systematic performance-energy design exploration of network applications