Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стек операций 
:(
    Опции темы
MAKCim
Дата 23.8.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Mal Hack, 
посмотри мое решение  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ln78
Дата 23.8.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



Возможно, оффтоп, но может и будет полезно.
Когда мне приходилось заниматься оптимизацией расчётов каких-либо функций, я делал это на уровне математики, а не программирования. Так, например, для исходного варианта f(x)=(sin(x+2)-exp(2*x))*3 очевидны формулы: sin(x+dx)=sin(x)*cos(dx)+cos(x)*sin(dx); exp(x+dx)=exp(x)*exp(dx).
При таком подходе вызовы функций достаточно сделать один раз, а дальше уже использовать готовые значения. Понятно, что способ не универсальный, достаточно трудоёмкий (может требоваться умение исходную систему переписать, например, вообще в другой системе координат, получить другие формулы), однако на практике он позволяет выполнять расчёты на 1-2 порядка быстрее, чем при очевидной записи математических выражений. 
Честно говоря, мне не совсем понятно каким образом можно сэкономив на стеке получить выигрыш при обращении к достаточно медленным функциям типа sin и exp.

PM MAIL   Вверх
Mal Hack
Дата 23.8.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 2
Всего: 261



MAKCim, как я понял он иллюстрирует работу с польской записью. Так что в обдумывание взял.

Ln78, такой анализ - хорош, но, думаю, мне он не будет нужен, не та задача, но принял к сведению.

Цитата(Ln78 @  23.8.2007,  16:17 Найти цитируемый пост)
Честно говоря, мне не совсем понятно каким образом можно сэкономив на стеке получить выигрыш при обращении к достаточно медленным функциям типа sin и exp.

Я не на стэке экономить хочу, я не хочу при многократном вызове f(x) каждый раз ее парсить из строки.

PM ICQ   Вверх
JackYF
Дата 23.8.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Mal Hack @  23.8.2007,  14:32 Найти цитируемый пост)
JackYF, а можно что-ть более развернуто на тему лямбда функции почитать? Не имел с этим дело и мало представляю себе суть. 

документация на boost.org, лучше вряд ли есть...


Цитата(powerfox @  23.8.2007,  15:43 Найти цитируемый пост)
При парсинге можно собирать указатели на необходимые функции и потом пользоваться ими.

да, да, вот это я имел в виду - сбор указателей (вернее, вызовов функций) в лямбда-функции...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.