L>PS. Вот если бы это добро (fixed point) положить на MMX/SSE — вот где счастье-то было-бы!
хотелось бы верить что современные оптимизирующие компиляторы могут сделать это и без нас
ЯЕ>хотелось бы верить что современные оптимизирующие компиляторы могут сделать это и без нас
ЯЕ>
Разве что Intel-овский. И то — очень мало шансов.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, MShura, Вы писали:
WM>>WM>>template< typename Type, uint t_shift >
WM>>class fixed_T
WM>>{
WM>> // Раскладывает число "v" на целую и дробные части
WM>> static void analize( double v, value_type& integer, value_type& fractional )
WM>> {
WM>> integer = value_type(v);
WM>> fractional = value_type( ( v - double(integer) ) * scale );
WM>> }
WM>>};
WM>>
MS>Если double 64 бита и Type 64 бита (например UINT64), то в функции analize ошибка.
Это понятно, но какой есть способ это обойти. Разве что, как в AGG -- явно задавать WideType.