Если этот расчет происходит во внутреннем цикле, вам нужна высокая производительность, вы не можете использовать языки сценариев. Основываясь на том, как «разворачиваться» и насколько независимы от платформы, вы бы хотели:
1) Вы могли бы выразить уравнения в C++ и дать g ++ компилировать его для вас во время выполнения, и вы могли бы связать с полученным результатом общий объект. Но этот метод очень зависит от платформы на каждом шагу! Необходимые системные вызовы, компилятор для использования, флаги, загрузка общего объекта (или DLL) ... Это было бы супербыстро в конце, хотя, особенно если вы скомпилируете самый внутренний цикл с помощью уравнения. Уравнение будет вложенным и все.
2) Вы можете использовать java таким же образом. Вы можете получить хороший java-компилятор в java (из Eclipse, я думаю, но вы можете легко вставлять его).С этим решением результат будет несколько медленнее (в зависимости от того, сколько магии шаблона вы хотите), я бы ожидал, в большинстве случаев, в 2 раза. Но это решение чрезвычайно переносимо. Как только вы его заработаете, нет причин, по которым он не должен работать нигде, вам не нужно ничего внешнего по отношению к вашей программе. Еще одна минута этого - писать ваши уравнения в синтаксисе Java, что является уродливым для сложной математики. Первое решение намного лучше в этом отношении, так как перегрузка операторов сильно помогает математическим уравнениям.
3) Я не знаю много о C#, но может быть решение, подобное (2). Если есть, я знаю, что в C# есть перегрузка операторов, поэтому ваши уравнения будут приятнее писать и смотреть.
Я думаю, вы имели в виду '&&', а не '&'. – celtschk
@celtschk Я использую логические символы, а не синтаксис C/C++ – JonaGik
Конечно, логический символ для * и * есть ∧. И математический знак равенства равен =, а не ==. – celtschk