Re[3]: std::complex
От: Erop Россия  
Дата: 07.11.07 18:31
Оценка:
Здравствуйте, m.a.smirnoff, Вы писали:

MAS>Я ну ни как не врублюсь о какой аппаратной реализации комплексных чисел тут все говорят. Я лично незнаю такой платформы, хотя занимаюсь встроенными системами без малого второй десяток лет, и большую часть времени цифровой обработкой сигналов. Да и не кчему подобный изврат в принципе. Немогли бы вы подробнее развернуть вот эту свою мысль -> "то можно написать соответсвующую специализацию, а если так, как хочешь ты, то фиг там напишешь, а не специализацию..."


AFAIK сейчас таких реализаций, которые несовместимы с представлением как пара double не бывает. Но никто не мешает им быть...
Ну а про фиг там или не фиг, так это я про то, что на платформе комплексное число может быть представлено как-то так, что поля "вещественная часть" может и не быть в явном виде.
Вдруг, например, порядки будут храниться в такой реализиции отдельно, а мантисы отдельно?

E>>Хотя, стоит, ИМХО, попробовать во что таки компилируется
E>>template<typename T> set_imag( std::complex<T>& dst,  T imag )
E>>{
E>>    dst = std::complex( dst.real(), imag );
E>>}

E>>Очень может быть, что оно хорошо компилируется и real часть не переписывает лишний раз...

MAS>Что-то мне подсказывает что врядли, однако лезть в получивший ся бинарь счас не очень хочется. Может когда времени будет побольше посмотрю, что из этого безобразия получается.


Ну в целом можешь подумать во что это таки скомпилируется...
ИМХО во что-то типа такого:
[псевдокод]
загрузить в регистр 1 из dst.re
загрузить в регистр 2 из imag
записать из регистра 1 в dst.re
записать из регистра 2 в dst.im
[/псевдокод]


Казалось бы, не такая уж нереальная задачка для оптимизатора выбросить выделенные строки...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.