Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62

Оптимизирует ли компилятор выражения в цикле типа 90*M_PI или каждую итерацию в цикле считает заново?

30.07.2014, 19:44. Показов 1344. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Занялся сабжем по проекту. IDE Builder 2010
1) Оптимизирует ли компилятор выражения в цикле типа 90*M_PI или каждую итерацию в цикле считает заново?
2) Будет ли выигрыш от принудительного приведения типов? Типа таких строчек
a = b * 2.1;
a = b * 2.1f;
Где а и b типа float, ведь по хорошему в 1 выражении b должно привестись к double, а потом полученное произведение к float
3) Какие-нибудь еще не очевидные советы по сабжу. К примеру недавно узнал что в квадрат или 3 степень быстрее через простое умножение, нежели через pow(). Может какие-нибудь еще математические библиотеки есть специальные где стандартные функции быстрее вычисляются?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.07.2014, 19:44
Ответы с готовыми решениями:

Функции. Не считает последнюю итерацию в цикле
Добрый вечер. Не могу понять, почему в цикле не считает 12 итерацию. Ниже строка с комментарием. #include <iostream> #include...

Объявляется ли каждую итерацию переменная-счетчик в цикле for?
Всем привет, расскажу историю возникшего вопроса. Отходил я как-то на курсы с++, и там преподаватель (авторитетный вроде программист,...

Вывести итерацию в цикле
Здравствуйте, заадание такое: дан отрезок с шагом h. Сделать тремя способами: с параметром, предусловием и постусловием. Для расчетов...

7
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
30.07.2014, 20:01
возможно будет интересно и полезно
0
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62
31.07.2014, 20:37  [ТС]
Спасибо
Модератор, перенесите пожалуйста тему в раздел C++, думаю будет более правильно
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
01.08.2014, 10:57
Цитата Сообщение от phtnr Посмотреть сообщение
Оптимизирует ли компилятор выражения
Смотрите ассемблерный выход.
Цитата Сообщение от phtnr Посмотреть сообщение
должно привестись к double
Зачем это еще? Приводится к ближайшему большему.
Цитата Сообщение от phtnr Посмотреть сообщение
Может какие-нибудь еще математические библиотеки есть специальные где стандартные функции быстрее вычисляются?
Вы сейчас хотите заняться преждевременной оптимизацией. Больше хлопот себе доставите.
Цитата Сообщение от phtnr Посмотреть сообщение
перенесите пожалуйста тему в раздел C++
Если все это рассматривать в контексте борландового компилятора, то пусть здесь лежит.
0
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62
02.08.2014, 01:14  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Приводится к ближайшему большему
Ну а разве 2.1 не рассматривается компилятором как double константа и соответственно меняет тип на который множится число?
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
02.08.2014, 01:23
Цитата Сообщение от phtnr Посмотреть сообщение
Ну а разве 2.1 не рассматривается компилятором как double константа и соответственно меняет тип на который множится число?
Возникает вопрос, что мы знаем о double и float
0
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62
02.08.2014, 01:26  [ТС]
А по теме?
То что занимают разный размер в памяти.
0
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
02.08.2014, 01:57
phtnr,
Не знаю на сколько верн это, но как то так
C++
1
2
3
4
float c = 1;
sizeof(c * 2.1f); //4
sizeof(float (c * 2.1));//4
sizeof(c * 2.1);//8
выходит что в последнем как раз double

Добавлено через 16 минут
Но по сути, я не думаю, что будет большой прирост от приведения. И в pow включены варианты со степенью 0 и 1, а если у тебя большое выражение расписанное без pow которое потом будет возведено в 0? Смысл считать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2014, 01:57
Помогаю со студенческими работами здесь

Task показывает одинаковую итерацию в цикле
Добрый вечер, пытаюсь с помощью Task создать несколько процессов и запустить функцию в каждом из них, но всегда получается одинаковая...

Std::getline() пропускает итерацию в цикле: найти и исправить ошибки в коде
Цикл for принимает на одну строку меньше чем должен. Я так понимаю это getline() воспринимает введенную перед этим переменную "int...

Почему не считает в цикле for ( x = x++ )
Добрый день Столкнулся с такой проблемой. package p143; public class Mixfor5 { public static void main(String args) { int...

Ошибка в цикле (Не считает до конца)
Проблема следующая. Есть программа расчета пассивного участка траектории для ракеты (баллистические уравнения). Не получается посчитать...

Цикл в цикле, не считает сумму
Задача стояла такая: нужно найти значения xi по формуле: {x}_{i}=\sum_{j=1}^{J}{A}_{j}*{x}_{i-j}+{\xi }_{i} Сделала цикл в цикле, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru