LINUX.ORG.RU

[ненависть] C++

 


0

1

Господа, посоветуйте, как отучить компилятор понимать выражение

cln::cl_F x;

3/8*x
как
cln::cl_F x;

(3/8)*x = 0*x = 0
?

Переписывать код как

cln::cl_F x;

x*(3/8)
дюже неохота — его порядка 1000 строк

Вообще что это: выкрутасы компилятора или непродуманный синтаксис языка (shift/reduce conflict)? Класс, с которым такое происходит — cln::cl_F — взят из библиотеки cln (Class Library for Numbers)

Ответ на: комментарий от annoynimous

Ах да, милости просим реализовать «правильную» систему чисел неограниченной точности. В пожеланиях также вычисление спецфункций и операции линейной алгебры, алгоритмы интегирование и многое другое. Чтобы было эффективно, правильно, векторизовалось и не проводило 99% времени в аллокации/деаллокации. Научное сообщество будет очень благодарно.

annoynimous ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.