spamsink: (lenin)
[personal profile] spamsink
Если нельзя точно представлять десятичные дроби в виде числа с плавающей точкой, но очень хочется, то можно.

Всей библиотеки - два килобайта, а верблюды, созданные комитетом, идут лесом.

Date: 2014-03-20 03:20 am (UTC)
vak: (Default)
From: [personal profile] vak
Красивое решение.

Date: 2014-03-20 08:16 am (UTC)
From: [identity profile] janatem.livejournal.com
Тогда уж лучше держать по 4 бита на десятичную цифру и реализовывать всю арифметику десятичной. Только придется конверторы туда-сюда на периметре ставить.

Date: 2014-03-20 08:30 pm (UTC)
From: [identity profile] janatem.livejournal.com
Если поставлена задача реализовать некий алгоритм над таким десятичным представлением в железе, то в зависимости от сложности алгоритма оптимальными могут оказаться разные реализации. Если нужно много нормализаций (десятичных сдвигов), то лучше завести лишние конверторы и лишние биты для внутреннего представления, зато делить на 10 почти бесплатно.

Date: 2014-03-20 09:09 pm (UTC)
From: [identity profile] janatem.livejournal.com
Меня смутило, что полторы тыщи лутов и глубина 10 — это считается дешево. (Имеется в виду, найти частное от деления 64-битного числа на 10, так?)

Сейчас начал было изобретать, как правильно делить на константу. Получается так: множитель 1/5 = 0.(0011); надо взять исходное число и складывать его само с собой, сдвинутым на соответствующее количество разрядов. Причем количество нетривиальных слагаемых в данном случае равно половине разрядности числа (период 4, в нем две единицы). То есть выходит 32 64-битных слагаемых. Если с глубоким конвейером делать, то железа нужно совсем мало — около сотни вентилей, а если чисто комбинаторно, то может не взлететь: пять сложений в глубину за такт — многовато.

Date: 2014-03-20 03:36 am (UTC)
From: [identity profile] yatur.livejournal.com
А чем они отличается, кроме разницы в размере экспоненты? Две альтернативных интерпретации представления decimal64, правда, несколько смущают. Это бардак.

Date: 2014-03-20 03:36 am (UTC)
From: [identity profile] dluciv.livejournal.com
Я всего пару лет назад узнал, что оно стандпртизовано. Но нужно чаще бухгалтерам, а им плавающая зспятая редко нужна.

Date: 2014-03-20 03:37 am (UTC)
From: [identity profile] dluciv.livejournal.com
Это я про стандарт.

Date: 2014-03-20 05:54 am (UTC)
From: [identity profile] dluciv.livejournal.com
Так и IEEE же десятичные позволяет. Я не говорю, что оптимально, но на безрыбье пользовались бы.

Думаю, что у них просто старые привычки из КОБОЛа. А у новых экономистов — цельносоздранный по хорошей традиции софт. А главное, что при фиксированной запятой основание системы счисления вообще не играет роли — целое оно и есть целое, пусть там 100 или 10000 будет в знаменателе.

Date: 2014-03-20 06:10 am (UTC)
From: [identity profile] dluciv.livejournal.com
Совсем напрямую не реализовано ни в каком, так же как и DEC64.

Я не спорю с тем, что DEC64 оптимальнее чем реализации (наверное любые) стандарта. Более того, если бы я делал, я бы наверное делал так же.

Date: 2014-03-20 05:43 am (UTC)
From: [identity profile] ilya-dogolazky.livejournal.com
а зачем это всё на асемблере, с привязкой к конкретному компилятору Си?

Date: 2014-03-20 05:56 am (UTC)
From: [identity profile] archaicos.livejournal.com
Гэниально! Осталось только синусы, арктангенсы и экспоненты сделать.

Date: 2014-03-20 06:26 am (UTC)
From: [identity profile] maksa.livejournal.com
Заглянул в исходники страницы. cornsilk, indianred, navajowhite. В стиле автору не откажешь.
Edited Date: 2014-03-20 06:26 am (UTC)

Date: 2014-03-20 08:13 am (UTC)
From: [identity profile] janatem.livejournal.com
Основной вопрос — нафига? Бухгалтерам хватит и фиксированной точки, всем остальным десятичное представление нафиг не нужно.

Date: 2014-03-20 08:25 pm (UTC)
From: [identity profile] janatem.livejournal.com
Это-то понятно. Вопрос в том, кому нужна эта однозначность.

Date: 2014-03-20 08:29 am (UTC)
ak_47: (default)
From: [personal profile] ak_47
Я считаю что Даглас Крокфорд вообще непризнаный гений. Такое ясное мышление редко у кого можно встретить. Уж точно не в комитетах. :)

Date: 2014-03-20 10:35 pm (UTC)
From: [identity profile] archaicos.livejournal.com
Может, соскучился по асму, а то все js, да js. :)

Profile

spamsink: (Default)
spamsink

February 2026

S M T W T F S
12345 67
8 91011 121314
15161718 192021
22 2324 25262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 5th, 2026 11:32 pm
Powered by Dreamwidth Studios