Size: a a a

Chaos Constructions Demo/Retro

2020 May 08

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
это я понял
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
но не понял на каком проце это надо сделать
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Хотя... кажется, мысль пришла в голову одна.
Можно к абсолютным не приводить, а просто проверить знак результата относительно знаков множителей...
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Δαρθ Βέιδερ
но не понял на каком проце это надо сделать
x86
Но можно и в виде алгоритма.
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
если х86 то умножь 32*32 в 64 и посмотри на старшее слово
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
или посмотри доку может imul 32*32->32 ставит флаг переполнения
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Δαρθ Βέιδερ
если х86 то умножь 32*32 в 64 и посмотри на старшее слово
Нет, там числа более длинные.
В 16-битном режиме умножаем 64-битные числа.
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
32*32 — это для упрощения было.
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
ну так с этого и надо было начинать, условия озвучить :)
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Я ж написал, что длина множителей N слов :)
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Евгений Красников (Jin X)
Хотя... кажется, мысль пришла в голову одна.
Можно к абсолютным не приводить, а просто проверить знак результата относительно знаков множителей...
Короче, попробую так сделать просто :)
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
если N больше M, то правильно брать какоенить libgmp :)
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Только вот с делением уже по-любому не прокатит. Я так понимаю, по любому к абсолютным приводить нужно?
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Δαρθ Βέιδερ
если N больше M, то правильно брать какоенить libgmp :)
Не, в данном случае нужно вручную сделать.
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
деление хз, можно ли осилить non-restoring на асме, оно ВРОДЕ знак сохраняет
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
еще есть алгоритм умножения прям со знаком (без абсолютизирования), но он тоже для хардвары подходит, для проца нет.
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
особенно если в проце УЖЕ есть команды умножения...
источник

ΔΒ

Δαρθ Βέιδερ... in Chaos Constructions Demo/Retro
так, хрень удалил :) короче с абсолютизированием наиболе оптимальный вариант, всяко инверсия займёт времени сильно меньше ечем само умножение
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Евгений Красников (Jin X)
Хотя... кажется, мысль пришла в голову одна.
Можно к абсолютным не приводить, а просто проверить знак результата относительно знаков множителей...
А, блин. При умножении положительного и отрицательного переполнение идёт же (залезает в дополнительные старшие слова).
Ну хер с ним, тогда оставлю так, с приведением к асбу.
источник

ЕК

Евгений Красников (J... in Chaos Constructions Demo/Retro
Δαρθ Βέιδερ
деление хз, можно ли осилить non-restoring на асме, оно ВРОДЕ знак сохраняет
Что за non-restoring?
источник