26.12.2010 9:08, Sap78 пишет:
> if(foo(myDoubleVariable)) > { > //значение myDoubleVariable столь велико, что прибавление 1 тонет в округлении > //факт, конечно, забавный, но что с этим делать в production code — непонятно. > }
Ну как же что? Баги.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: # как манагеров достали те, кого достали манагеры
27.12.2010 13:52, Mystic пишет:
> Например, в MATLAB по умолчанию используется один тип float, в том числе > и для индексации матриц. Соответственно, если размер массива превышает > это значение, то нам нужно хотя бы предупреждение вывести, например...
Ты бы сначала справку матлаба почитал...
Posted via RSDN NNTP Server 2.1 beta
Re[5]: # как манагеров достали те, кого достали манагеры
27.12.2010 8:13, Cyberax пишет:
> 3) Вопрос помогает найти тех, кто способен решать проблемы, которые > ВНЕЗАПНО возникают на ровном месте.
4) А так же тех, которые будут их вам ВНЕЗАПНО создавать на ровном месте.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Vzhyk, Вы писали:
>> Мее кажется, такого рода тесты очень хорошо отличают людей типа "я 20 >> лет уже этим гаечным ключом гайки кручу, и ничего подобного мне никогда >> знать было не надо" от людей, которых любопытство заставляет заглядывать >> за пределы своего гаечного ключа. V>А там всего-лишь обычный таракан.
Да нет же, там целый мир, а таракан у смотрящего в голове
Re[6]: # как манагеров достали те, кого достали манагеры
D>>А это выражение компилятор имеет право вычислять чисто во float. Я так полагаю.
M>Я тоже думал что должно в float , но селяви. Разбираться в тонкости нет желания.
ты пишешь "я тоже думал что должно быть в float". Слово "тоже" употреблено некорректно, потому что оно подразумевает, что я тоже думаю, что ДОЛЖНО быть в float. Но я же ясно написал, что "имеет право" == МОЖЕТ, а не должен. Скажем, компилятор имеет право здесь поставить SSE команды оперирующие 32-битными флоатами.
В то же время, часто промежуточные вычисления выполняются с 80-бит, значит DBL_EPSILON не достаточно.
Re[6]: # как манагеров достали те, кого достали манагеры
Здравствуйте, мыщъх, Вы писали:
М>задача как задача. все же лучше, чем сдвинуть гору фудзи кстати, гугл большой. намного больше чем слон. единого стандарта набора спецов там нет. HR'ы обращаются к программерам, чтобы те составили им задачку которая не встречалась ранее и которая бы проверяла базовые знания. кстати, работа с вещественными это и есть та база без которой никуда. как тут уже справедливо заметили, что банальный цикл рискует стать бесконечным только потому что на каком-то этапе обломиться с инкрементом.
Задача Г, автор М.
Как ты правильно отметил, большинство разумных людей используют целочисленные индексы при итерациях.
Но если вдруг возникнет сферическая необходимость запихнуть вещественное число в for, то подобная бяка должна выявляться вторым юнит-тестом.
Просто некоторые предпочитают всю жизнь обосновывать, почему самолет не взлетит, в то время как те, кто знает, что взлетит, уже давно перешли к решению более насущных задач.
Здравствуйте, dilmah, Вы писали:
D>>>А это выражение компилятор имеет право вычислять чисто во float. Я так полагаю.
M>>Я тоже думал что должно в float , но селяви. Разбираться в тонкости нет желания.
D>ты пишешь "я тоже думал что должно быть в float". Слово "тоже" употреблено некорректно, потому что оно подразумевает, что я тоже думаю, что ДОЛЖНО быть в float. Но я же ясно написал, что "имеет право" == МОЖЕТ, а не должен. Скажем, компилятор имеет право здесь поставить SSE команды оперирующие 32-битными флоатами. D>В то же время, часто промежуточные вычисления выполняются с 80-бит, значит DBL_EPSILON не достаточно.
И вот имеет ли право компилятор использовать 80 бит точность для сравнения , не уверен. Буду благодарен если ткнешь в стандарт
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[7]: # как манагеров достали те, кого достали манагеры
ОК>>>>Советую учить Си по Кернигану и Ритчи а непонятно по кому. М>>>но до сих пор работает: foo(a,b){return a+b;} ОК>>Кстати, как это будет работать если при вызове передашь double-ы, например? Или структуры? Pzz>Если аргументы не описаны, подразумевается int, а не полиморфизм
Если параметры не описаны или функция вообще не объявлена, отключается type and parameter checking при вызове. Программист может передать в функцию все что угодно и компилятор не будет делать никаких проверок. Вызываемая функция, разумеется, будет считать что ей действительно были переданы int-ы. Именно поэтому ANSI C ввел C++-style function declarations and definitions.
Re[7]: # как манагеров достали те, кого достали манагеры
ОК>>>>Советую учить Си по Кернигану и Ритчи а непонятно по кому. М>>>но до сих пор работает: foo(a,b){return a+b;} ОК>>Кстати, как это будет работать если при вызове передашь double-ы, например? Или структуры? М>какие структуры? это работает как int foo(int a, int b){return a+b;} ну и как это будет работать если при вызове передать структуры? это int по умолчанию, а вовсе не #define foo(a,b) ((a)+(b))
M>И вот имеет ли право компилятор использовать 80 бит точность для сравнения , не уверен. Буду благодарен если ткнешь в стандарт
Я применю простую логику. Итак, мы имеем float a;
Утверждение первое: тип (a+1) это float, a не double. Здесь нет никаких причин для промоушена в дабл.
Тест на практике:
#include <stdio.h>
int main() {
float f = 0.f;
double d = 0.;
printf("%d %d %d %d\n", sizeof(f), sizeof(f+1), sizeof(f+1.), sizeof(d));
return 0;
}
$ gcc fltdbl.c
$ ./a.exe
4 4 8 8
Значит, либо достаточно FLT_EPSILON. Но его конечно не достаточно. Но в таком случае нет никаких причин говорить что достаточно DBL_EPSILON, потому что double здесь никак не фигурирует, компилятор имеет право проводить промежуточные вычисления в любом расширенном типе какой захочет. Нет никаких оснований выделить 64-битный тип, он в данном случае ничем не выделяется.
Re[8]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Олег К., Вы писали:
Pzz>>Мне кажется, во вменяемых компаниях, типа гугля, никто с секундомером сидеть не будет. ОК>Ты действительно думаешь что Гугл вменяемая компания?
Ну, относительно вменяемая. У меня там знакомые кое-какие работают.
Re[8]: # как манагеров достали те, кого достали манагеры
Здравствуйте, minorlogic, Вы писали:
M>И вот имеет ли право компилятор использовать 80 бит точность для сравнения , не уверен. Буду благодарен если ткнешь в стандарт
Компилятор может и не имеет, а intel x86 fpu все действия производит над 80-битными числами (по крайней мере раньше производил), а потом при сохранении в память округляет до double. Впрочем, это не имеет значения, ведь все равно единица отсечется при сохранении в 64 бита.
Re[6]: # как манагеров достали те, кого достали манагеры
C>>3) Вопрос помогает найти тех, кто способен решать проблемы, которые ВНЕЗАПНО возникают на ровном месте. E>Мне тоже понравился.
А мне не понравился. В Computer Science навалом фундаментальных вещей которые имеют большее отношение к практике чем данный вопрос.
Поддерживаю MescalitoPeyot. Тема топика тоже дурацкая.
Re[9]: # как манагеров достали те, кого достали манагеры
Здравствуйте, andrey.desman, Вы писали:
AD>Компилятор может и не имеет, а intel x86 fpu все действия производит над 80-битными числами (по крайней мере раньше производил), а потом при сохранении в память округляет до double. Впрочем, это не имеет значения, ведь все равно единица отсечется при сохранении в 64 бита.
а, ну да. сравнение ведь происходит до сохранения, значит не прокатит (может не прокатить), если только не запретить это компилятору явно
Re[8]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Олег К., Вы писали:
ОК>Ты действительно думаешь что Гугл вменяемая компания?
А что есть вменяемая компания? Ведут прием сотрудников на работу в соответствие с твоими рекомендациями?
ОК>Они поработали на имя. Теперь имя работает на них.
У google вроде всегда так было.
Re[9]: # как манагеров достали те, кого достали манагеры
Pzz>>>Мне кажется, во вменяемых компаниях, типа гугля, никто с секундомером сидеть не будет. ОК>>Ты действительно думаешь что Гугл вменяемая компания? Pzz>Ну, относительно вменяемая. У меня там знакомые кое-какие работают.
У меня тоже. И еще пара ходила совсем недавно на интервью.
Re[9]: # как манагеров достали те, кого достали манагеры
ОК>>Ты действительно думаешь что Гугл вменяемая компания? M>А что есть вменяемая компания? Ведут прием сотрудников на работу в соответствие с твоими рекомендациями?
Есть какой-то предел на котором сойдутся большинство толковых интервьюируемых. Гугл, имхо, перегибает палку. И, потом, имелась в виду сама работа в Гугле. Не все там так шоколодно.
ОК>>Они поработали на имя. Теперь имя работает на них. M>У google вроде всегда так было.
Отнюдь. Сейчас Гугл уже не тот как лет восемь назад.
Re[10]: # как манагеров достали те, кого достали манагеры
Здравствуйте, Олег К., Вы писали:
ОК>Есть какой-то предел на котором сойдутся большинство толковых интервьюируемых. Гугл, имхо, перегибает палку. И, потом, имелась в виду сама работа в Гугле. Не все там так шоколодно.
Нет единственно правильного варианта. Есть несколько возможных вариантов. И толковые интервьюеры есть в каждом из них.
ОК>>>Они поработали на имя. Теперь имя работает на них. M>>У google вроде всегда так было. ОК>Отнюдь. Сейчас Гугл уже не тот как лет восемь назад.
Всегда там были такие задачки, я про это еще восемь лет назад читал.
Re[7]: # как манагеров достали те, кого достали манагеры
Здравствуйте, landerhigh, Вы писали:
L>Задача Г, автор М. L>Как ты правильно отметил, большинство разумных людей используют целочисленные индексы при итерациях. L>Но если вдруг возникнет сферическая необходимость запихнуть вещественное число в for, то подобная бяка должна выявляться вторым юнит-тестом.
А ты знаешь, что ВСЕ числа в JS — это double? Или ты хочешь сказать, что HTML — это никому не нужно?