Size: a a a

2020 February 04

M

Mr.Mait in Qt
Павел
хорошо, класс, я с ним как-то неправильно работаю?
источник

BB

Bohdan Bessonov in Qt
Павел
Всем ку, увожаемые. Если кто сталкивался с работой с встроенным типом данных qfloat16, просьба помочь прояснить ситуацию:

qfloat16 val = 540 / 1000.0f; // можно и так: qfloat16 val = qfloat16(540) / qfloat16(1000); а можно и так: qfloat16 val = qfloat16(540.0f) / qfloat16(1000.0f); это не влияет на результат

std::cout << std::numeric_limits<qfloat16>::max() << std::endl;
std::cout << std::numeric_limits<qfloat16>::min() << std::endl;
std::cout << val << std::endl;

выхлоп - сплошная дичь(можно заменить штатный std::cout на родной для кт qDebug(), на выхлоп это не повлияет):

0
0
0.539551

почему min/max в нулях? Интересно, какой вообще max/min может быть у 16 битного флота
min = qfloat16(Wrap(0x400));
max = qfloat16(Wrap(0x7bff));
и да, стоит заметить, что если хочется минимальное (которое там -многобукаф) - следует юзать lowest, а не min

src: https://code.woboq.org/qt5/qtbase/src/corelib/global/qfloat16.h.html#_ZN8qfloat1610_limit_minEv
источник

M

Mr.Mait in Qt
источник

П

Павел in Qt
я оба их уже смотрел, но что-то ничего не понял
источник

П

Павел in Qt
Bohdan Bessonov
min = qfloat16(Wrap(0x400));
max = qfloat16(Wrap(0x7bff));
и да, стоит заметить, что если хочется минимальное (которое там -многобукаф) - следует юзать lowest, а не min

src: https://code.woboq.org/qt5/qtbase/src/corelib/global/qfloat16.h.html#_ZN8qfloat1610_limit_minEv
это всё хорошо, оно у вас лично компилируется и корректно выполняется?
источник

П

Павел in Qt
может быть ему для работы нужна подрубка каких-то макросов(и все это знают кроме меня), но я не увидел каких
источник

M

Mr.Mait in Qt
Скорее для qfloat16 numeric_limits не существует шаблон
источник

SE

Stanislav Ershov in Qt
Mr.Mait
Скорее для qfloat16 numeric_limits не существует шаблон
ну в 5.14 есть
источник

BB

Bohdan Bessonov in Qt
Mr.Mait
Скорее для qfloat16 numeric_limits не существует шаблон
в том же классе который ты скинул
namespace std {
template<>
class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public numeric_limits<float>
источник

П

Павел in Qt
Mr.Mait
Скорее для qfloat16 numeric_limits не существует шаблон
я думаю компилер бы поругался ещё на этапе сборки об этом =)
источник

SE

Stanislav Ershov in Qt
Павел
Всем ку, увожаемые. Если кто сталкивался с работой с встроенным типом данных qfloat16, просьба помочь прояснить ситуацию:

qfloat16 val = 540 / 1000.0f; // можно и так: qfloat16 val = qfloat16(540) / qfloat16(1000); а можно и так: qfloat16 val = qfloat16(540.0f) / qfloat16(1000.0f); это не влияет на результат

std::cout << std::numeric_limits<qfloat16>::max() << std::endl;
std::cout << std::numeric_limits<qfloat16>::min() << std::endl;
std::cout << val << std::endl;

выхлоп - сплошная дичь(можно заменить штатный std::cout на родной для кт qDebug(), на выхлоп это не повлияет):

0
0
0.539551

почему min/max в нулях? Интересно, какой вообще max/min может быть у 16 битного флота
65504
6.10352e-05  

нормально выдает
источник

П

Павел in Qt
Stanislav Ershov
65504
6.10352e-05  

нормально выдает
воо! Вот он человек года! Подскажи пожалуйста, у тебя случаем не виндвос ли ОС ? Мб сборка КТ которую я стащил с оф серверов собрана как-то с вырубленым макросом, я уже скоро на курсы гадалок запишусь от этого qfloat16
источник

M

Mr.Mait in Qt
Не могу у себя проверить, версия старовата. Но вот. Я пометил статическую функцию мин
источник

M

Mr.Mait in Qt
источник

П

Павел in Qt
Mr.Mait
Не могу у себя проверить, версия старовата. Но вот. Я пометил статическую функцию мин
её и я замечал, ты её попробуй вызови :)
источник

SE

Stanislav Ershov in Qt
Павел
воо! Вот он человек года! Подскажи пожалуйста, у тебя случаем не виндвос ли ОС ? Мб сборка КТ которую я стащил с оф серверов собрана как-то с вырубленым макросом, я уже скоро на курсы гадалок запишусь от этого qfloat16
msvc 16.4, qt 5.14.1 с qt.io :)
источник

M

Mr.Mait in Qt
А зачем 16 битный флоат вообще ?)
источник

П

Павел in Qt
ну я прост решил поковыряться в анналах истории, игрушка alone in the dark 1, и вот там мне хотелось бы каноничной приближенности к оригинальным типам данных и размерам тогдашнего времени, с float всё работает конечно же, но меня заинтересовал qfloat16, заодно, подумал, может чего нового узнаю
источник

П

Павел in Qt
Stanislav Ershov
msvc 16.4, qt 5.14.1 с qt.io :)
у меня gcc linux и билд qt 5.14.1, тоже с qt.io, выходит виндовс рулит :/ спасибо большое ещё раз, есть над чем подумать
источник

SE

Stanislav Ershov in Qt
Mr.Mait
А зачем 16 битный флоат вообще ?)
уменьшить потребление памяти и увеличить пропускную способность? )
источник