LINUX.ORG.RU
Ответ на: комментарий от LLM-9000

Абсолютно плевать было на точность вычислений, корректировка курса была по наблюдаемым объектам, точнее если Луну видно в иллюминатор, значит летим правильно, не видно - корректируем курс руками. На «Аполлонах» этот сраный калькулятор, де-факто, только жрал электричество и обогревал пространство, больше он нафиг был не нужен.

Frohike
()
Ответ на: комментарий от Frohike

На «Аполлонах» этот сраный калькулятор, де-факто, только жрал электричество и обогревал пространство, больше он нафиг был не нужен.

Вот и настало время афигительных историй! Ничего, что «этот сраный калькулятор» имел первую в истории ОС реального времени и без него бы аполлон вообще никуда не полетел?

Ваши бредни про корректировку курса вообще никакой критики не выдерживают, аполлон описан в деталях, каждый желающий может открыть литературу и убедится что Вы самое обычное брехло не имеющее к космосу вообще никакого отношения.

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

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Ничего, что «этот сраный калькулятор» имел первую в истории ОС реального времени и без него бы аполлон вообще никуда не полетел?

Ничего, я разрешаю. Любой калькулятор имеет ОС реального времени, внезапно :) Здорово, да? Но это не киллерфича и в полёте вёдер «аполлон» они никакого значимого участия не принимали.

Frohike
()
Ответ на: комментарий от Frohike

Какой резвый толстячок.😊

Сдаюсь. Вы победили, в космос можно лететь с компасом и картой.

Но у меня ещё вопрос: а нужна ли в какой-то другой сфере деятельности высокая точность вычислений? В какой?

LLM-9000
()
Ответ на: комментарий от Frohike

Любой калькулятор имеет ОС реального времени, внезапно

Это надо в мемориз! @bugfixer, слыхал?!

AntonI ★★★★★
()
Ответ на: комментарий от LLM-9000

а нужна ли в какой-то другой сфере деятельности высокая точность вычислений? В какой?

Странный вопрос, определяете допустимую в вашей задаче точность и считаете, обычно ничего сверхестественного не требуется.

Frohike
()
Ответ на: комментарий от Frohike

Погодите, но ведь:

Это значит то, что совершенно без разницы 0x3eb17217 или 0x3eb1730d.

Где тут вопрос, какая точность человеку, который задал вопрос, нужна?

Тут явно следует что не нужна вообще, в принципе.

LLM-9000
()
Ответ на: комментарий от LLM-9000

У нас тут похоже новый чемпион образовался! Был Царь, был метапрог, был космоспек - но все они канули в лету. Зато теперь есть космический инженер и вычислитель @Frohike, уже можно коллекционировать перлы;-)

По харизме он конечно не дотягивает до прежних героев ЛОРа, но я в него верю! @thunar - мб будет интересно.

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от LLM-9000

Но он же написал какой ему нужен результат,а ЭВМ даёт другой, всё в рамках вопроса.

Он неопытный и толком не знает что ему нужно, а ЭВМ всё сделала как надо оптимальным путём, ибо нет никакой значимой разницы между желанием пользователя и результатом машины.

Frohike
()
Ответ на: комментарий от LLM-9000

А какие ещё профессии на этой вашей шкале есть? Как они расположены?

Очевидно ещё есть доставщик пиццы и массажист, ну и пожалуй всё.

Frohike
()
Ответ на: комментарий от Frohike

Хуже, я Инженер.

Вы самое обычное брехло.

в полёте вёдер «аполлон» они (бортовые компьютеры) никакого значимого участия не принимали.

Вообще никакого, они управляли всем - от сист. жизнеобеспечения до сист. ориентации и связи. Инженеры занимающиеся космосом об этом прекрасно знают, литературы об этом тонны. Вы - нет.

AntonI ★★★★★
()
Ответ на: комментарий от Frohike

А кто же строит космопорт, ваш институт, ракету, которую вы обсчитываете в своей космической программе, а кто в ней летит?

LLM-9000
()
Ответ на: комментарий от AntonI

Вообще никакого, они управляли всем - от сист. жизнеобеспечения до сист. ориентации и связи. Инженеры занимающиеся космосом об этом прекрасно знают, литературы об этом тонны. Вы - нет.

Вы такой наивный и доверчивый, аж даже умильно :)

Frohike
()
Ответ на: комментарий от LLM-9000

Сдаюсь. Вы победили, в космос можно лететь с компасом и картой.

Эх молодёж… Пачки беломора достаточно.

Psilocybe ★★★★★
()
Ответ на: комментарий от luke

В том что он неправильно считается в newlib?

Кстати, я таки поигрался - со всеми версиями gcc что под рукой у меня стабильно из logf(sqrtf(2.0)) вываливается 0x3eb17217 и из (float)log(sqrt(2.0)) - 0x3eb17218. Как в 32ух битах, так и в 64ёх. Как на RH6, так и на RH8 (libm - системная). Что там в newlib замутили - понятия не имею. Зачем он вам?

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

Типа быстрее? Есть у коллег странная склонность юзать какой то странный софт:-)

Хотя мы например стараемся просто не дёргать спецфункции в главном цикле.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

Давно все не так как в 8087.

С чего бы это? x87 инструкции никто не отменял, и они до сих пор дают наилучшую точность вычислений из всего что умеет проц.

firkax ★★★★★
()
Ответ на: комментарий от bugfixer

Что приносило больше проблем чем их решало: результат напрямую зависел от того была выгрузка промежуточного результата из FPU регистра в память, или нет

Это не проблемы FPU, это проблемы плохого кода. Совершенно незаем выгружать в память double, надо везде использовать нативный 80-битный формат и всё будет норм.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Это не проблемы FPU, это проблемы плохого кода.

Тыркать пальчиком в поисках виноватого можно сколь угодно долго - проблема от этого не уходит.

Совершенно незаем выгружать в память double

Во что именно компилятор трёх-километровое выражение развернул - от вас не сильно зависит.

надо везде использовать нативный 80-битный формат

Это как? Спешу заметить size(double) == 8.

bugfixer ★★★★★
()
Ответ на: комментарий от AntonI

Хотя мы например стараемся просто не дёргать спецфункции в главном цикле.

Мне пришлось приложить ненулевые усилия чтобы компилятор эти константы гвоздями не прибил и таки дёрнул за libm в runtime… Константы, правда, были такими-же.

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

Это как? Спешу заметить size(double) == 8.

sizeof(double) тут не особо при чём, есть long double, который должен быть как раз тем типом (это не у всех компиляторов так, к сожалению, некоторые туда суют какие-то самодельные типы или алиас в double) и опция компилятора чтобы промежуточные выичсления делать именно нём.

Как с этим дела у gcc на протяжении всех его версий я не особо изучал.

firkax ★★★★★
()
Ответ на: комментарий от bugfixer

Да там наши тырили из старой реализации, я уже скидывал кусок кода. В newlib это вот этот вот файл вроде как: newlib/libm/mathfp/sf_logarithm.c

luke ★★★★★
() автор топика
Ответ на: комментарий от luke

Ладно, про бсд согласен, его даже в линуксе нет.

Но вот попытки выставить POSIX не стандартным Си крайне осуждаю.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ну, у меня на миниксе random нет, потому что minix не posix (чистое буквоедство).

luke ★★★★★
() автор топика
Ответ на: комментарий от firkax

здрасьте!

Си - это Си, а позикс - это позикс. это вообще разное. и ортогональное. система запросто может не поддерживать позикс и всё, никакой поддержки его функционала не будет. и гнутые расширения - это тоже ни разу не «стандартный Си».

стандарты на то и стандарты, чтобы определять базовые возможности языка, не зависящие от конкретных платформ. это must have. ну, на мелкоконтроллерах ещё бывают урезанные «почти стандарты», в силу специфики железа.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

система запросто может не поддерживать позикс и всё

Она и rand() может не поддерживать. Это всё библиотека. Сам Си - это то, что останется, если убрать все .so включая libc (да, я знаю что существует другое мнение на этот счёт, даже оформленное в виде окументов под названием «ISO C», но отклоняю его). Там на самом деле даже main() потеряет свой особый смысл. Но на нормальных системах POSIX поддерживается.

стандарты на то и стандарты

Вот это как раз про POSIX.

мелкоконтроллерах ещё бывают урезанные «почти стандарты»

Да, бывают урезанные или устаревшие системы без поддержки POSIX-а.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Сам Си - это то, что останется, если убрать все .so включая libc

здрасте (2)

Можно и в RT компилятора тогда впилить, но функции из стандарта Си обязаны быть.

luke ★★★★★
() автор топика
Ответ на: комментарий от firkax

нет, стандарт языка - он либо поддерживается, либо нет. если что-то есть в стандарте - то его обязаны поддерживать. а позикс - это отдельный стандарт, он распространяется на системы. и тоже может либо поддерживаться, либо нет. не понимаю, при чём тут «нормальность». позикс - это лишь один из многих стандартов. и он никак не связан с сишкой и её стандартами.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от luke

Можно и в RT компилятора тогда впилить, но функции из стандарта Си обязаны быть.

Что значит обязаны? Обещание кому-то дали? Они ж не живые? libc - не часть языка, это библиотека, реализующая общепринятые для языка функции. И, разумеется, POSIX входит в их число, никаких отдельных libposix.so нет. rand(), random(), fopen() и open() полностью равны в плане стандартизации.

firkax ★★★★★
()
Ответ на: комментарий от Iron_Bug

если что-то есть в стандарте - то его обязаны поддерживать.

Вот в posix есть random(), обязаны поддерживать по твоей логике. На самом деле конечно же не обязаны. Обязаны - это когда ты либо кому-то что-то обещал, либо (и/или) за неисполнение обязательств к тебе придут силовые органы и начнут наказывать. Если ты не обещала поддерживать random() в своей libc - не поддерживай, никто ттебя за это не накажет. Не обещала rand() - аналогично. Ну а авторы компиляторов тем более на это не подписывались, они прекрасно знают что набор поддерживаемых функций от компилятора почти не зависит (зависит в очень редких случаях, где компилятор имеет встроенные реализации). Не обещали и не обязаны. Мнение фантазёров из ISO-комитета остаётся абстрактно-теоретическим и ни на что не влияет.

позикс - это лишь один из многих стандартов. и он никак не связан с сишкой и её стандартами.

Ещё как связан, он описывает Си-функции. Потому как Си - системный язык для POSIX-систем. Да, он не единственный, есть ещё куча других: C89, C99, GNUC89, GNUC99, BSD4.4, X/Open, SUSv2 итд. Следование каждому из них (POSIX в том числе) - дело исключительно добровольное.

firkax ★★★★★
()
Ответ на: комментарий от firkax

(хотя просто ISO C не существует, есть ISO C90 итд)

Ну естественно.

luke ★★★★★
() автор топика
Ответ на: комментарий от firkax

если система поддерживает какую-то версию стандарта и это заявлено официально, то она ему соответствует. и должны быть реализованы все требования стандарта. а конкретно из позикса, емпнип, некоторые устаревшие функции поудаляли в его новых версиях. я хз, что там конкретно с random, никогда его не использовала, потому что предпочитаю не связываться с сомнительными вещами, которые ещё хрен знает, поддерживаются на платформе или нет.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

если система поддерживает какую-то версию стандарта и это заявлено официально, то она ему соответствует

Круто. И что? Не вижу официальных заявлений от дебиана о том что их ОС соответствует C90 или ещё чему-то похожему. А от Линуса так вообще имелись заявления что неудачные пункты этих ISO C следует игнорировать и нейтрализовывать (благо, gcc поддерживает нормальную версию Си а не только ту что комитетчики написали).

я хз, что там конкретно с random, никогда его не использовала, потому что предпочитаю не связываться с сомнительными вещами

Правильно, надо использовать arc4random и в системных требованиях указать что нужна BSD-based OS.

firkax ★★★★★
()
Ответ на: комментарий от firkax

а при чём тут Дебиан? дебиан поставляет, например, gcc и смотреть поддержку фич Си нужно там, а не у Дебиана. Дебиан максимум может повключать какие-то фичи при сборке компилятора, но на поддержку стандартов это вряд ли повлияет.

надо использовать arc4random и в системных требованиях указать что нужна BSD-based OS.

да, вот буквально недавно, правда, уже не помню где точно, выпиливала это говнище, заменяя его на rand. я даже не знала до этого момента, что оно вообще существует.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

дебиан поставляет, например, gcc и смотреть поддержку фич Си нужно там

Хорошо, смотри. Я не буду, мне лень и не нужно.

выпиливала это говнище, заменяя его на rand.

🤦

firkax ★★★★★
()
Ответ на: комментарий от firkax

а что ты строишь рожи? в musl нет всякого ненужно, а он строго следует стандартам Си. и я подозреваю, что в glibc его тоже может не быть. хотя наверняка не знаю.

и да, кстати, упомянутое мною выпиливание некоторых фич в новых позиксах может причинить немало попаболи его любителям. новые версии несовместимы со старыми. зачем было выпиливать - отдельный философский вопрос. но факт остаётся фактом. поэтому чтобы не зависеть от подобных флуктуаций, лучше такое просто не использовать. вообще всякие расширения стандартов - это зло само по себе и пороховая бочка. раньше позикс был нужен для тредов. теперь треды уже давно впилили в стандарт. правда, я считаю, что зря, потому что треды могут быть реализованы не на всех платформах вообще. но чёрт с ним, впилили и впилили. теперь pthreads.h стал не нужен, а это была практически единственная нужная фича позикса.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

новые версии несовместимы со старыми

Только у тебя в голове, и исключительно по причине того что ты молишься на всякую ИТ-бюрократию. Никто функции не удаляет на самом деле, авторы систем стараются максимально поддерживать обратную совместимость. И делают они это не ради «ооо, это же стандарт, надо поддержать», а потому что хотят чтобы старый софт по возможности работал.

firkax ★★★★★
()
Ответ на: комментарий от firkax

это никакая не «бюрократия», читай тексты стандартов. и я ни на что не «молюсь», я атеист. и именно поэтому я не верю в спасительные костыли из разных непонятных суповых наборов. я понимаю, что эта фигня ничего не стоит и в любой момент может исчезнуть из вида. поэтому такие вещи использовать не стоит.

а ещё у меня есть опыт, в отличие от многих местных комментаторов. и я видела не одну платформу и не две, и не три. и я себе представляю, что тот манямирок, который есть у некоторых на локалхосте, не является глобальным мировым стандартом и колхоз-стайл в коде - это лажа.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

я понимаю, что эта фигня ничего не стоит и в любой момент может исчезнуть из вида

Ты вот только почему-то не понимаешь, что, в контексте библиотечных функций, у какого-нить C99 и POSIX шансы исчезнуть примерно одинаковые. И то и то - всего лишь один из стандартов, претендующих на описание libc. То, что в первом в названии слово «C» есть а во втором нет - так это они сами так назвались, и никаких объективных преимуществ это им не даёт.

firkax ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.