templatize all types constaining float point data