typedef the floating point datatype (double|float) for easier switching
add hash structure

***    needs testing