Замена умножения сложением (сдвигами и не знаю чем еще)

Тема в разделе "WASM.ASSEMBLER", создана пользователем absolut77, 11 дек 2005.

  1. absolut77

    absolut77 New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2005
    Сообщения:
    4
    Адрес:
    Russia
    Можно ли заменить умножение чисел с плавающей точкой сложением , сдвигом и не знаю чем еще.. Если кто-то сталкивался, отзовитесь плиз
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    А смысл?
     
  3. absolut77

    absolut77 New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2005
    Сообщения:
    4
    Адрес:
    Russia
    никакого к сожалению =)
     
  4. absolut77

    absolut77 New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2005
    Сообщения:
    4
    Адрес:
    Russia
    целые числа полбеды (хотя если у кого то есть исходники ДАВАЙТЕ!! =) ).. а вот с плавающей точкой пока что-то не догоню никак =(
     
  5. Chingachguk

    Chingachguk New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2002
    Сообщения:
    340
    Попробуй посмотреть библиотеки старых компилляторов типа tp7, когда они генерят код без сопроцессора (для паскаля ключ $N-).
     
  6. absolut77

    absolut77 New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2005
    Сообщения:
    4
    Адрес:
    Russia
    мне нужно вообще без всякого умножения как целочисленного так и умножения чисел с п точкой.. эмуляция скорее всего его содержит
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    absolut77

    > "целые числа полбеды .. а вот с плавающей точкой пока что-то не догоню никак"

    Не знаю для чего тебе это нужно, но с вещественными почти также как и с целыми: "перемножаешь" мантиссы как (длинные) целые числа, складываешь порядки и ксоришь знаковые биты ;). Конечно не все так просто, т.к. сначала нужно извлечь мантиссы со сдвигом, после "умножения" решить задачку округления до требуемого числа разрядов с учетом возможного увеличения порядка числа, ну и наконец сдвинуть итоговое значение на место. Можно cказать "Элементарно, Ватсон", вот только оно тебе надо ? ;)
     
  8. Ation

    Ation New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    92
    Адрес:
    Zaporozhie
    Как вариант можно перемножать, представляя числа как неправильные дроби. Тогда перемножаешь целые числа.

    Если надо просто перемножать, то можно поизврашатся, и представлять число как вектор из степеней простых чмсел, перемножение которого дает число ( степени могут быть отрицательны).

    Тогда перемножение и деление - просто прибавление показателей для простых чисел.
     
  9. Ation

    Ation New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2005
    Сообщения:
    92
    Адрес:
    Zaporozhie
    А вообще смысла в этом действительно нет никакого, только в целях, простите, ананизма.
     
  10. Vedrus

    Vedrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2006
    Сообщения:
    7
    Адрес:
    Алтайский край
    Смысл - ускорение умножения. А зачем это надо? - спросите Вы. А, например, для поиска простых чисел (последнее найденное имеет более 6000 десятичных разрядов). А за вновь найденное дают $20 000 US
     
  11. Vedrus

    Vedrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2006
    Сообщения:
    7
    Адрес:
    Алтайский край
    Смысл - ускорение умножения. А зачем это надо? - спросите Вы. А, например, для поиска простых чисел (последнее найденное имеет более 6000 десятичных разрядов). А за вновь найденное дают $20 000 US
     
  12. Vedrus

    Vedrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2006
    Сообщения:
    7
    Адрес:
    Алтайский край
    Смысл - ускорение умножения. А зачем это надо? - спросите Вы. А, например, для поиска простых чисел (последнее найденное имеет более 6000 десятичных разрядов). А за вновь найденное дают $20 000 US
     
  13. Vedrus

    Vedrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2006
    Сообщения:
    7
    Адрес:
    Алтайский край
    Модераторы, извините за дубли, кнопка заела :dntknw:
     
  14. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Для справочки: в атлонах латентность регистровых операций IMUL - 3-4 такта, FMUL - 4 такта.

    ИМХО кроме отдельных тривиальных случаев никакими заменами быстрее не сделаешь. Поэтому нужно думать не об ускорении отдельного IMUL\FMUL, а об оптимизации алгоритма и распараллеливании вычислений