Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.
Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.
Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.
Byla vydána nová verze 10.1 sady aplikací pro SSH komunikaci OpenSSH. Uživatel je nově varován, když se nepoužívá postkvantovou výměnu klíčů.
Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.
Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.
Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů
… více »#include <iostream> int main(int argc, char **argv) { unsigned long int c = 0; float t = 0; while (t < 3000) { if (c % 1000000 == 0) { std::cout << t << "\n"; } c++; t += 0.0001; } return 0; }Kompilace
g++ -ansi -Wall -pedantic test.cpp -o test
Cyklus by mel pridavat k float promenne t
konstantu 1e-4
dokud t
nedosahne hodnoty 3000
. To se vsak nestane, protoze hodnota t
se zastavi na cisle 2048
a dal nejde (i kdyz je inkrementovana, zustava konstantni). Tato limitni hodnota roste s krokem, napr. pro krok 1e-3
se inkrementace zastavi az na 32768
, pro 1e-2
to je 262144
.
What gives?
No a nebude to tým, že číslo 2048.0001 nie je možné reprezentovať dátovým typom float?
Pohraj sa na http://www.h-schmidt.net/FloatApplet/IEEE754.html
binárne 01000101000000000000000000000000 je float 2048.0
binárne 01000101000000000000000000000001 je float 2048.0002
a+b==a
pokud b<epsilon/2*a
je docela normální. Spíš mě překvapuje, že to neví někdo, kdo o IEEE754 evidentně ví.
float
- 7 platných číslic (jestli se nepletu je zaručeno 6) + exponent(desetinná čárka cca. ± 38míst)double
- 15 platných číslic + exponent(desetinná čárka cca. ± 300míst)long double
- 19 platných číslic + exponent (Pozor: v případě M$ je to jako double) g++ -o inforeal inforeal.cpp
) a spustíte dostanete základní informace:
#include <iostream> #include <float.h> int main(int argc, char **argv) { std::cout.precision(FLT_DIG); std::cout.flags(std::ios::scientific); std::cout << "float:" << std::endl; std::cout << " min: " << FLT_MIN << std::endl; std::cout << " max: " << FLT_MAX << std::endl; std::cout << " 10 exponent min: " << FLT_MIN_10_EXP << std::endl; std::cout << " 10 exponent max: " << FLT_MAX_10_EXP << std::endl; std::cout << " digits: " << FLT_DIG << std::endl; std::cout << " Epsilon: " << FLT_EPSILON << std::endl; std::cout.precision(DBL_DIG); std::cout << "double:" << std::endl; std::cout << " min: " << DBL_MIN << std::endl; std::cout << " max: " << DBL_MAX << std::endl; std::cout << " 10 exponent min: " << DBL_MIN_10_EXP << std::endl; std::cout << " 10 exponent max: " << DBL_MAX_10_EXP << std::endl; std::cout << " digits: " << DBL_DIG << std::endl; std::cout << " Epsilon: " << DBL_EPSILON << std::endl; std::cout.precision(LDBL_DIG); std::cout << "long double:" << std::endl; std::cout << " min: " << LDBL_MIN << std::endl; std::cout << " max: " << LDBL_MAX << std::endl; std::cout << " 10 exponent min: " << LDBL_MIN_10_EXP << std::endl; std::cout << " 10 exponent max: " << LDBL_MAX_10_EXP << std::endl; std::cout << " digits: " << LDBL_DIG << std::endl; std::cout << " Epsilon: " << LDBL_EPSILON << std::endl; #if defined FLT_ROUNDS std::cout << std::endl; std::cout << "Type of rounding floating numbers: "; switch(FLT_ROUNDS){ case -1 : std::cout << "indeterminable"; break; case 0 : std::cout << "towards zero"; break; case 1 : std::cout << "to the nearest number"; break; case 2 : std::cout << "towards positive infinity"; break; case 3 : std::cout << "towards negative infinity"; break; default : std::cout << "? - no standard definition"; break; } std::cout << std::endl; #endif return 0; }
Tiskni
Sdílej: