Абсолютно плевать было на точность вычислений, корректировка курса была по наблюдаемым объектам, точнее если Луну видно в иллюминатор, значит летим правильно, не видно - корректируем курс руками. На «Аполлонах» этот сраный калькулятор, де-факто, только жрал электричество и обогревал пространство, больше он нафиг был не нужен.
На «Аполлонах» этот сраный калькулятор, де-факто, только жрал электричество и обогревал пространство, больше он нафиг был не нужен.
Вот и настало время афигительных историй! Ничего, что «этот сраный калькулятор» имел первую в истории ОС реального времени и без него бы аполлон вообще никуда не полетел?
Ваши бредни про корректировку курса вообще никакой критики не выдерживают, аполлон описан в деталях, каждый желающий может открыть литературу и убедится что Вы самое обычное брехло не имеющее к космосу вообще никакого отношения.
Вы мне напоминаете закомплексованного 7ми летнего ребенка, который придя в первый класс начинает для важности рассказывать какой он мегакрутой каратист, хотя в жизни никого не ударил кроме кошки.
Ничего, что «этот сраный калькулятор» имел первую в истории ОС реального времени и без него бы аполлон вообще никуда не полетел?
Ничего, я разрешаю. Любой калькулятор имеет ОС реального времени, внезапно :) Здорово, да? Но это не киллерфича и в полёте вёдер «аполлон» они никакого значимого участия не принимали.
У нас тут похоже новый чемпион образовался! Был Царь, был метапрог, был космоспек - но все они канули в лету. Зато теперь есть космический инженер и вычислитель @Frohike, уже можно коллекционировать перлы;-)
По харизме он конечно не дотягивает до прежних героев ЛОРа, но я в него верю! @thunar - мб будет интересно.
Но он же написал какой ему нужен результат,а ЭВМ даёт другой, всё в рамках вопроса.
Он неопытный и толком не знает что ему нужно, а ЭВМ всё сделала как надо оптимальным путём, ибо нет никакой значимой разницы между желанием пользователя и результатом машины.
в полёте вёдер «аполлон» они (бортовые компьютеры) никакого значимого участия не принимали.
Вообще никакого, они управляли всем - от сист. жизнеобеспечения до сист. ориентации и связи. Инженеры занимающиеся космосом об этом прекрасно знают, литературы об этом тонны. Вы - нет.
Вообще никакого, они управляли всем - от сист. жизнеобеспечения до сист. ориентации и связи. Инженеры занимающиеся космосом об этом прекрасно знают, литературы об этом тонны. Вы - нет.
Кстати, я таки поигрался - со всеми версиями gcc что под рукой у меня стабильно из logf(sqrtf(2.0)) вываливается 0x3eb17217 и из (float)log(sqrt(2.0)) - 0x3eb17218. Как в 32ух битах, так и в 64ёх. Как на RH6, так и на RH8 (libm - системная). Что там в newlib замутили - понятия не имею. Зачем он вам?
Что приносило больше проблем чем их решало: результат напрямую зависел от того была выгрузка промежуточного результата из FPU регистра в память, или нет
Это не проблемы FPU, это проблемы плохого кода. Совершенно незаем выгружать в память double, надо везде использовать нативный 80-битный формат и всё будет норм.
Хотя мы например стараемся просто не дёргать спецфункции в главном цикле.
Мне пришлось приложить ненулевые усилия чтобы компилятор эти константы гвоздями не прибил и таки дёрнул за libm в runtime… Константы, правда, были такими-же.
sizeof(double) тут не особо при чём, есть long double, который должен быть как раз тем типом (это не у всех компиляторов так, к сожалению, некоторые туда суют какие-то самодельные типы или алиас в double) и опция компилятора чтобы промежуточные выичсления делать именно нём.
Как с этим дела у gcc на протяжении всех его версий я не особо изучал.
Си - это Си, а позикс - это позикс. это вообще разное. и ортогональное. система запросто может не поддерживать позикс и всё, никакой поддержки его функционала не будет. и гнутые расширения - это тоже ни разу не «стандартный Си».
стандарты на то и стандарты, чтобы определять базовые возможности языка, не зависящие от конкретных платформ. это must have. ну, на мелкоконтроллерах ещё бывают урезанные «почти стандарты», в силу специфики железа.
система запросто может не поддерживать позикс и всё
Она и rand() может не поддерживать. Это всё библиотека. Сам Си - это то, что останется, если убрать все .so включая libc (да, я знаю что существует другое мнение на этот счёт, даже оформленное в виде окументов под названием «ISO C», но отклоняю его). Там на самом деле даже main() потеряет свой особый смысл. Но на нормальных системах POSIX поддерживается.
стандарты на то и стандарты
Вот это как раз про POSIX.
мелкоконтроллерах ещё бывают урезанные «почти стандарты»
Да, бывают урезанные или устаревшие системы без поддержки POSIX-а.
нет, стандарт языка - он либо поддерживается, либо нет. если что-то есть в стандарте - то его обязаны поддерживать. а позикс - это отдельный стандарт, он распространяется на системы. и тоже может либо поддерживаться, либо нет. не понимаю, при чём тут «нормальность». позикс - это лишь один из многих стандартов. и он никак не связан с сишкой и её стандартами.
Можно и в RT компилятора тогда впилить, но функции из стандарта Си обязаны быть.
Что значит обязаны? Обещание кому-то дали? Они ж не живые? libc - не часть языка, это библиотека, реализующая общепринятые для языка функции. И, разумеется, POSIX входит в их число, никаких отдельных libposix.so нет. rand(), random(), fopen() и open() полностью равны в плане стандартизации.
если что-то есть в стандарте - то его обязаны поддерживать.
Вот в posix есть random(), обязаны поддерживать по твоей логике. На самом деле конечно же не обязаны. Обязаны - это когда ты либо кому-то что-то обещал, либо (и/или) за неисполнение обязательств к тебе придут силовые органы и начнут наказывать. Если ты не обещала поддерживать random() в своей libc - не поддерживай, никто ттебя за это не накажет. Не обещала rand() - аналогично. Ну а авторы компиляторов тем более на это не подписывались, они прекрасно знают что набор поддерживаемых функций от компилятора почти не зависит (зависит в очень редких случаях, где компилятор имеет встроенные реализации). Не обещали и не обязаны. Мнение фантазёров из ISO-комитета остаётся абстрактно-теоретическим и ни на что не влияет.
позикс - это лишь один из многих стандартов. и он никак не связан с сишкой и её стандартами.
Ещё как связан, он описывает Си-функции. Потому как Си - системный язык для POSIX-систем. Да, он не единственный, есть ещё куча других: C89, C99, GNUC89, GNUC99, BSD4.4, X/Open, SUSv2 итд. Следование каждому из них (POSIX в том числе) - дело исключительно добровольное.
если система поддерживает какую-то версию стандарта и это заявлено официально, то она ему соответствует. и должны быть реализованы все требования стандарта. а конкретно из позикса, емпнип, некоторые устаревшие функции поудаляли в его новых версиях. я хз, что там конкретно с random, никогда его не использовала, потому что предпочитаю не связываться с сомнительными вещами, которые ещё хрен знает, поддерживаются на платформе или нет.
если система поддерживает какую-то версию стандарта и это заявлено официально, то она ему соответствует
Круто. И что? Не вижу официальных заявлений от дебиана о том что их ОС соответствует C90 или ещё чему-то похожему. А от Линуса так вообще имелись заявления что неудачные пункты этих ISO C следует игнорировать и нейтрализовывать (благо, gcc поддерживает нормальную версию Си а не только ту что комитетчики написали).
я хз, что там конкретно с random, никогда его не использовала, потому что предпочитаю не связываться с сомнительными вещами
Правильно, надо использовать arc4random и в системных требованиях указать что нужна BSD-based OS.
а при чём тут Дебиан? дебиан поставляет, например, gcc и смотреть поддержку фич Си нужно там, а не у Дебиана. Дебиан максимум может повключать какие-то фичи при сборке компилятора, но на поддержку стандартов это вряд ли повлияет.
надо использовать arc4random и в системных требованиях указать что нужна BSD-based OS.
да, вот буквально недавно, правда, уже не помню где точно, выпиливала это говнище, заменяя его на rand. я даже не знала до этого момента, что оно вообще существует.
а что ты строишь рожи? в musl нет всякого ненужно, а он строго следует стандартам Си. и я подозреваю, что в glibc его тоже может не быть. хотя наверняка не знаю.
и да, кстати, упомянутое мною выпиливание некоторых фич в новых позиксах может причинить немало попаболи его любителям. новые версии несовместимы со старыми. зачем было выпиливать - отдельный философский вопрос. но факт остаётся фактом. поэтому чтобы не зависеть от подобных флуктуаций, лучше такое просто не использовать. вообще всякие расширения стандартов - это зло само по себе и пороховая бочка. раньше позикс был нужен для тредов. теперь треды уже давно впилили в стандарт. правда, я считаю, что зря, потому что треды могут быть реализованы не на всех платформах вообще. но чёрт с ним, впилили и впилили. теперь pthreads.h стал не нужен, а это была практически единственная нужная фича позикса.
Только у тебя в голове, и исключительно по причине того что ты молишься на всякую ИТ-бюрократию. Никто функции не удаляет на самом деле, авторы систем стараются максимально поддерживать обратную совместимость. И делают они это не ради «ооо, это же стандарт, надо поддержать», а потому что хотят чтобы старый софт по возможности работал.
это никакая не «бюрократия», читай тексты стандартов. и я ни на что не «молюсь», я атеист. и именно поэтому я не верю в спасительные костыли из разных непонятных суповых наборов. я понимаю, что эта фигня ничего не стоит и в любой момент может исчезнуть из вида. поэтому такие вещи использовать не стоит.
а ещё у меня есть опыт, в отличие от многих местных комментаторов. и я видела не одну платформу и не две, и не три. и я себе представляю, что тот манямирок, который есть у некоторых на локалхосте, не является глобальным мировым стандартом и колхоз-стайл в коде - это лажа.
я понимаю, что эта фигня ничего не стоит и в любой момент может исчезнуть из вида
Ты вот только почему-то не понимаешь, что, в контексте библиотечных функций, у какого-нить C99 и POSIX шансы исчезнуть примерно одинаковые. И то и то - всего лишь один из стандартов, претендующих на описание libc. То, что в первом в названии слово «C» есть а во втором нет - так это они сами так назвались, и никаких объективных преимуществ это им не даёт.