Byl vydán Mozilla Firefox 118.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vypíchnout je nutno automatický lokální strojový překlad webových stránek. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 118 je již k dispozici také na Flathubu a Snapcraftu.
Byla vydána nová major verze 15.0.0 softwaru OCRmyPDF pro přidávání textové vrstvy k naskenovaným PDF dokumentům (PDF/A). Přehled novinek v poznámkách k vydání. OCRmyPDF využívá pro optické rozpoznávání znaků (OCR) engine Tesseract.
Karel Matějka zveřejnil druhé demo své chystané hry Bzzzt. Kromě verze pro Windows a macOS je dostupná i verze pro Linux. Plná verze hry má vyjít zanedlouho.
Noví Bulánci byli oficiálně vydáni. V roce 2021 bylo na Startovači na podporu vývoje této hry vybráno 7,3 miliónů Kč. Hra je zatím určena jenom pro Windows, díky Protonu ale běží také na Linuxu.
ChatGPT může vidět, slyšet a mluvit.
Upscaler je open source nástroj pro zvýšení rozlišení a vylepšení obrázků pomocí AI. Vývoj probíhá na GitLabu. Instalovat lze také z Flathubu. Stejně jako Upscayl je Upscaler postaven nad Real-ESRGAN.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.20.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
V Dublinu o víkendu proběhla dvanáctá iterace multimediální konference Video Dev Days, kterou pravidelně pořádá nezisková organizace VideoLAN. Záznamy přednášek z prvního a druhého dne jsou dostupné na YouTube.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), dospěl po pěti letech vývoje do verze 1.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3.
Facebook má nové logo. Poznáte rozdíl?
#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: