Byla vydána verze 0.84 telnet a ssh klienta PuTTY (Wikipedie). Podrobnosti v přehledu nových vlastností a oprav chyb a Change Logu.
Microsoft představil Azure Linux 4.0 a Azure Container Linux. Na konferenci Open Source Summit North America 2026 organizované konsorciem Linux Foundation a sponzorované také Microsoftem. Azure Linux 4.0 vychází z Fedora Linuxu. Azure Container Linux je založen na projektu Flatcar. Azure Linux (GitHub, Wikipedie) byl původně znám jako CBL-Mariner.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 165 (pdf).
Byla vydána verze 9.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.
Firefox 151 podporuje Web Serial API. Pro komunikaci s různými mikrokontroléry připojenými přes USB nebo sériové porty už není nutné spouštět Chrome nebo na Chromiu postavené webové prohlížeče.
Byla vydána nová stabilní verze 8.0 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 148. Přehled novinek i s náhledy v příspěvku na blogu.
Ve FreeBSD byla nalezena a opravena zranitelnost FatGid aneb CVE-2026-45250. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel se může stát rootem.
Společnost Flipper Devices oznámila Flipper One. Zcela nový Flipper postavený od nuly. Jedná se o open-source linuxovou platformu založenou na čipu Rockchip RK3576. Hledají se dobrovolníci pro pomoc s dokončením vývoje (ovladače, testování, tvorba modulů).
Vývojáři Wine oznámili vydání verze 2.0 knihovny vkd3d pro překlad volání Direct3D na Vulkan. Přehled novinek na GitLabu.
Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 10.2 a 9.8. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Vypíchnout lze CLI AI asistenta goose. Podrobnosti v poznámkách k vydání (10.2 a 9.8).
#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?
nebo lépe vlastnost IEEE754. Nechce se mi to počítat, nicméně jde o to, že pro hodnotu 1E-4 máš exponent -14 a pro hodnotu 2048 máš exponent 11. Když sečítáš floaty, tak je nejdřív převedeš na ten větší exponent (v tomhle případě 11) a mantisu menšího posuneš doprava. Pro 1E-4 tu mantisu posuneš o 25 míst do prava. Problém je v tom, že mantisa má 24 bitů (nepočítám implicitní 1) a tudíž bude pro hodnotu 1E-4 nulová => přičítáš nulu.
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: