![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| _aleks_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2005 Репутация: нет Всего: нет |
Может подскажет кто-нибудь как эту функцию можно ещё оптимизировать
Это сообщение отредактировал(а) _aleks_ - 31.3.2005, 06:09 |
|||
|
||||
| chipset |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Начнём с того что он не компилируется, у тебя траблы со скобками, нужно так:
Во-вторых не скомпилируется ибо:
В-третьих, зачем указатель pb?, приходится раскрывать его всё время, что ест операции. В-чётвёртых, зачем pb вообще если можно привести потом всё в конце static_cast'ом? В-пятых, почему заголовок большими буквами? Это сообщение отредактировал(а) chipset - 31.3.2005, 06:37 --------------------
|
||||||
|
|||||||
| Fire-Plug |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 15.3.2005 Репутация: -1 Всего: 0 |
_aleks_
Похоже, что тебе надо вычислить значение след.выражения: 1-й байт * 0.11+ 2-й байт * 0.59 + 3-й байт*0.3. Что, кстати, закодировано в байтах color - RGB? Итак, мне видится 2 подхода к решению: 1) union
2) битовые операции
Следует иметь в виду, что тип результата выражения - double, хоть и множество его значений находится в пределах [0...255]. Ну что с ним делать уже решать тебе. --------------------
Объясни другому - поймешь сам (Народная примета) |
||||
|
|||||
| _aleks_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2005 Репутация: нет Всего: нет |
Дело в том что надо, чтобы функция выполнялась как можно быстрее, поэтому я подумал что если арифметические операции будут выполняться паралельно то время выполнения уменьшиться
|
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
маразм однако, вот где индейцы побеждают
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
А если еще учесть, что
и
почти никак не повлияют на результат, то можно сделать еще на порядок быстрее... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Хороший вариант у oleg1973 (естественно
Это сообщение отредактировал(а) Fixin - 31.3.2005, 17:24 |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
делить вообще не стоит
вместо 100 можно взять степень двойки, тогда можно будет просто сдвинуть... -------------------- qqq |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Fixin, посмотри что я написал
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
Если уж такая тема, то и мне помогите, но у меня скорее задача решена правильно, но как всегда по-тупому
ЗЫ просьба не пинать
|
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Ага, угу, ну да. Но так понятнее |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
Fixin
а где они там у меня? там простое умножение без FPU -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| maxim1000 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
ну все-таки тема чужая
Это сообщение отредактировал(а) maxim1000 - 31.3.2005, 17:49 -------------------- qqq |
||||
|
|||||
| Doc_d0s |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: 2 Всего: 3 |
Вот так --------------------
Админ- это вождь Apache'й :) |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
maxim1000
Верно ! Но вот только тут одна проблема |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |