Ошибка "выражение должно относиться к целочисленному типа или типу перечисление без области видимости"

Пишу лабораторную работу по молекулярной физике, в задании приведены следующие расчёты, но когда вбиваю всё на C++, вылезает ошибка. Не понимаю, на что он ругается и как это исправить. Ошибка в строчке ""const double UCUT = 4 * EPS * ((SIGMA / RCUT ^ 12) - SIGMA / RCUT ^ 6);" Ругается на первую переменную SIGMA

Весь код:

const double MASS = 66.335;  // Масса одной частицы (атома аргона)
const double K_B = 1.380648528;  // Постоянная Больцмана
const double EPS = 1.712;  // Параметр энергии (глубина потенциальной ямы)
const double SIGMA = 0.3418;  // Параметр длины взаимодействия
const double RCUT = 2.5 * SIGMA;  // Радиус обрезания потенциала
const double RCUT2 = RCUT * RCUT;
const double UCUT = 4 * EPS * ((SIGMA / RCUT ^ 12) - SIGMA / RCUT ^ 6);
const double ACRIST = 1.0;  // Длина ребра эл. ячейки, зависит от от термодинамического 
состояния и модели
const double LX = NUMCRIST_X * ACRIST, LY = NUMCRIST_Y * ACRIST, LZ = NUMCRIST_Z * 
ACRIST;
const double VOLUME = LX * LY * LZ;  // Объём системы'''

Ответы (1 шт):

Автор решения: MBo

Ругается компилятор на RCUT ^ 12 и RCUT ^ 6 в формуле потенциала Леннарда-Джонса.

Оператор ^ в C++ означает не степень, а побитовую операцию XOR ("исключающее или"), неприменимую к вещественным числам.

Вам понадобится функция pow()

→ Ссылка