Страница 9 из 9 ПерваяПервая ... 789
Показано с 81 по 85 из 85

Тема: Логарифм макрос

  1. #81

    По умолчанию

    Цитата Сообщение от AI! Посмотреть сообщение
    ещё подумал..... и сдвинул "ожидаемый ответ" от 3ей итерации с (0..1/8) на (-1/16..1/16)
    т.е. на входе оной вместо (1;1,09050) будет (0,95760;1,04427), что ещё повысит точность...
    Да прибавить 0.5 ко второму CD32 это правильно.

    И ещё вопрос: в чём великая задумка fDIV(x, x) и последующего fMUL в самом начале? По-моему, эти блоки лишние.

  2. #82
    Пользователь
    Регистрация
    21.01.2011
    Адрес
    еБург
    Сообщений
    890

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    И ещё вопрос: в чём великая задумка fDIV(x, x) и последующего fMUL в самом начале? По-моему, эти блоки лишние.
    привычка программиста - отсекать неправильные значения... (т.н. "защита от дурака")
    x/x=1 при x!=0, и в ПР x/x=0 при x=0
    т.е. ещё когда не было ни строчки ниже первого блока, я вставил эту проверку, что бы обнулить выход когда x=0
    (изначально я предполагал, что на выходе может быть случайное значение)

    PS по этой же причине я делаю проверку x=1, и если это так, то умножаю ответ на 0
    Последний раз редактировалось AI!; 13.06.2016 в 16:21.
    начинающий профессионал

  3. #83

    По умолчанию

    Цитата Сообщение от AI! Посмотреть сообщение
    привычка программиста - отсекать неправильные значения... (т.н. "защита от дурака") в ПР x/x=0 при x=0
    Блин. Есть же стандарты на то, что должно получаться при 0/0.
    Интересно, ОВЕН во всех своих приборах теперь будет воспроизводить багу с 0/0=0?
    По-моему, выглядит хлипковато, даже, если и работает на текущем железе.

    Ошибочные числа вида NaN / inf на общей схеме видно. А про 0 далеко не сразу скажешь, что это признак "ошибки".

    Ну, выйдет какое-нибудь ПР440 на другом процессоре. Там тоже будет 0/0=0?
    Если уж и делать "защиту от ln(0)", то лучше ставить всем понятное fGT(1e-37). Т.е., если исходное значение меньше 1e-37 (ну или чему там +0 равен), то возвращать -infinity. Всем понятно, и без завязок на конкретное ПР с его 0/0.

  4. #84
    Пользователь
    Регистрация
    21.01.2011
    Адрес
    еБург
    Сообщений
    890

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Блин. Есть же стандарты на то, что должно получаться при 0/0.
    Уже обсуждался этот вопрос на этом форуме.
    Народ ожидает что 0*x должен быть всегда 0, даже если x=∞, т.к. умножение часто используется как вещественное SEL.
    То же самое и с делением.

    PS скорее всего до этого всё работало так как Вы хотите....

    PPS ещё в МК-61 была функция знак(х), на ПР её можно смоделировать как x/|x|
    так что мне нравится текущее положение дел...
    Последний раз редактировалось AI!; 13.06.2016 в 22:12.
    начинающий профессионал

  5. #85

    По умолчанию

    Цитата Сообщение от AI! Посмотреть сообщение
    т.к. умножение часто используется как вещественное SEL
    Лучше бы fSEL сделали, если реально 0/0=0 делали для того, чтобы использовать fMUL как fSEL... Но сейчас налетят модераторы и начнут сообщения удалять.

Страница 9 из 9 ПерваяПервая ... 789

Похожие темы

  1. Макрос внутри макроса ?
    от iman в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 03.10.2015, 20:49
  2. Макрос побитного вывода сигнатуры (beeper)
    от tigdin в разделе Программируемые реле
    Ответов: 25
    Последнее сообщение: 12.04.2015, 20:35
  3. Макрос в макросе
    от АлексPetr в разделе Программируемые реле
    Ответов: 4
    Последнее сообщение: 28.01.2015, 21:16
  4. Ответов: 12
    Последнее сообщение: 18.11.2014, 12:14
  5. Макрос
    от CEkip в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.04.2012, 21:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •