Re[4]: # как манагеров достали те, кого достали манагеры
От: silverwolf  
Дата: 30.01.11 21:05
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, мыщъх, Вы писали:


М>>но для плавучки в общем случае нельзя использовать '=='.

CC>Для того, чтоб узнать что число не изменилось — можно.
CC>Еще простая проверка на NaN делается сравнением числа с самим собой. Если (a != a) — то a == NaN.
Или одна из бесконечностей
Re[5]: # как манагеров достали те, кого достали манагеры
От: dilmah США  
Дата: 30.01.11 21:35
Оценка:
CC>>Еще простая проверка на NaN делается сравнением числа с самим собой. Если (a != a) — то a == NaN.
S>Или одна из бесконечностей

Ну в формально логике эта фраза верна, как и фраза Если (a != a) — то a == NaN или небо зеленое.
Но в обычной логике это не верно:

$ cat infeqinf.cc 
#include <math.h>
#include <iostream>

int main() {
  float x = FP_INFINITE;
  std::cout << (x != x) << std::endl;
  return 0;
}

$ g++ infeqinf.cc 
$ ./a.out 
0
Re[6]: # как манагеров достали те, кого достали манагеры
От: silverwolf  
Дата: 08.02.11 20:24
Оценка:
Здравствуйте, dilmah, Вы писали:

CC>>>Еще простая проверка на NaN делается сравнением числа с самим собой. Если (a != a) — то a == NaN.

S>>Или одна из бесконечностей

D>Ну в формально логике эта фраза верна, как и фраза Если (a != a) — то a == NaN или небо зеленое.

D>Но в обычной логике это не верно: ...

Перечитайте ветку. Оба комментария относились не к логике а к
foo(TYPEA a){ return ((a + 1) == a); }

Этот код может быть проверкой


P.S. По поводу "обычной логики" -- у нас за такое с первого курса отчисляли
P.S.S. Это не укол вам, а реально моего сокурсника отчислили за такое словосочетание.
Re[7]: # как манагеров достали те, кого достали манагеры
От: dilmah США  
Дата: 09.02.11 15:43
Оценка:
S>
  • или на бесконечность, которая по спекам, вроде как, не обязана равняться сама себе, иными словами после компиляции вашей программы в другом окружении, она может вывести истину.

    это не так:

    Comparisons are exact and never overflow or underflow. Four mutually exclusive relations are possible: less
    than, equal, greater than, and unordered. The last case arises when at least one operand is NaN. Every NaN
    shall compare unordered with everything, including itself. Comparisons shall ignore the sign of zero
    (so +0 = −0). Infinite operands of the same sign shall compare equal.

  • Re[8]: # как манагеров достали те, кого достали манагеры
    От: silverwolf  
    Дата: 09.02.11 19:30
    Оценка:
    Здравствуйте, dilmah, Вы писали:

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

    D>это не так:


    D>

    D>Comparisons are exact and never overflow or underflow. Four mutually exclusive relations are possible: less
    D>than, equal, greater than, and unordered. The last case arises when at least one operand is NaN. Every NaN
    D>shall compare unordered with everything, including itself. Comparisons shall ignore the sign of zero
    D>(so +0 = −0). Infinite operands of the same sign shall compare equal.

    Согласен, эт я хну сморозил Перепутал с NaN.
  • Re[13]: # как манагеров достали те, кого достали манагеры
    От: Ligen Украина http://zone-of-ambiguity.blogspot.com/
    Дата: 09.02.11 21:40
    Оценка:
    Здравствуйте, The Lex, Вы писали:

    Pzz>Во-первых, надо мозги иметь, чтобы различать, когда использовать стандартную запчасть, а когда свою вытачивать.


    TL>... А "свою вытачивать приходится" — это в основном от незнания стандартных и главное от _непринятия_ знания, что оные вообще существуют.


    Pzz дело говорит, зря с ним споришь — не нужно скатываться в другую крайнюю область.
    Я видел несколько проектов, которые погибли/были переписаны именно из-за тупого необдуманного желания использовать множество "стандартных компонентов", в тот момент, когда такие компоненты не удовлетворяли ТЗ даже в самых радужных расчетах.
    Так что я бы выделил сие в два пункта:
    1) желательно применять анализ — для того, чтобы понять, целесообразно ли в данном конкретном проекте использовать тот или иной "стандартный компонент", или нужно наресерчить свой, или нужно взять какие-то конкретные решения и их допилить(как вариант — обратиться к их владельцам с фичреквестом);
    2) анализ рекомендуется делать мозгом.

    Из-за велосипедистов бывает вред, бывает много вреда, особенно эта болезнь распостранена среди начинающих девелоперов. Из-за фанатиков антивелосипедистов вреда тоже нормально, где-то 25/75, я думаю... причем с возрастом и опытом эта болезнь обычно усугубляется.
    Хотя от сферы применения, наверное, тоже сильно зависит, вобщем-то это имеет прямое отношение к черезчур громкому слову "инновации".
    Viva el Junta Militar! Viva el Presidente!
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.