Пишу программу реализующую расчет из одного СНиПа. Расчет представляет собой последовательное вычисление по n различным формулам. Результаты передаются или в другие формулы или сохраняются как готовые. Кроме того, каждая формула пишет в лог в TeX нотации как она выглядит, с какими аргументами она вызвана и какой результат получен. Лог компилируется из TeXа в нужный строителям формат. Вопрос в том, как толковее организовать вычисления по формулам. Сейчас это объект Formulas, каждый метод которого реализует одну из формул, тянет из конфига описание данной формулы в TeXе и формирует объект Result, содержащий все необходимое для логгера. Сейчас все выходит очень некрасиво, так-как куча методов отличаются только числом аргументов и самим вычислением, которое они проделывают:
public CalculationsResult aFormula(double alphaj, double m) {
double arr[] = {alphaj, m};
double res = this.SolveCubic(1.4*alphaj, -(4.2*alphaj-1), 4.2*alphaj, -1-m);
int id = 120;
String name = new Object(){}.getClass().getEnclosingMethod().getName();
HashMap l1 = GetArgs(name, arr);
CalculationsResult result = new CalculationsResult(res, id, "a", l1);
return result;
}