Стандартное решение: взять стандартную программу на фортране и организовать совместную линковку. Попытка написать программу на С++ приведёт к кратному замедлению. Написать на С такую же эффективную программу (как на фортране) можно, но нужно знать как изнутри устроен блок оптимизации в компиляторе. А зачем различные порядки точности? Нужно выбрать подходящий под конкретную задачу.