Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla
… více »Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a
… více »Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.
Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.
GNU Project Debugger aneb GDB byl vydán ve verzi 18.1. Podrobný přehled novinek v souboru NEWS.
Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického
… více »Čínská technologická firma Xiaomi představila novou verzi 2.6 svého modelu MiMo, váhy modelů MiMo‑V2.6‑Pro‑RL a MiMo‑V2.6‑Flash‑RL jsou dostupné na HuggingFace pod licencí MIT. Výkonnější varianta Pro má přes bilion parametrů, z toho 42 miliard aktivních, úspornější Flash 309 miliard parametrů, z nichž se při generování aktivuje přibližně 15 miliard. Oba modely mají délku kontextového okna milion tokenů. Tyto MoE modely zvládají
… více »Proběhl Snapdragon Summit 2026. Společnost Qualcomm se mimo jiné pochlubila během Linuxu na čipech Snapdragon X2. Zatím pouze v ranní verzi vhodné pro vývojáře linuxových distribucí a přispěvatele do jádra Linux.
Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.
howgh
Stejné je to i s operátory. Mám prostě pocit, že pan paskma začíná nahrazovat kvalitu operátorů kvantitou
.
Ten program _je_ správně.
Tento názor musím podpořit, čím méně operátorů, tím lépe. A od operátoru rovnosti chci, aby porovnával rovnost.
Stokrát lepší se mi zdá následující drzé řešení:
double q = 3.0 / 7.0;
double eps = 1e-6;
if (around(q, 3.0 / 7.0, eps)
print("asi se rovnají");
else
print("jsou rozdílné!");
x.real == y.real && x.img == y.img. Takze sme tam kde sme byli.
complex<int> x,y; // ... nejaky kod if (x == y) // ...Ale jak říkám, považuji původní operátor == pro reálná čísla jako lepší. Kromě toho jde vždycky i v komplexních číslech napsat:
complex<double> x(1,2), y(1,2); if (abs(x - y) < epsilon) // ...Díky flexibilitě C++ není rozdíl v práci mezi reálnými a komplexními čísly.
public boolean textString(String a,String b){
return a==b;
}
Vrátí true pouze pro totožné objekty, Pro porovnání hodnot se musí použít
public boolean textString(String a,String b){
return a.equals(b);
}
1. identita(a) == identita(b) 2. hodnota(a) == hodnota(b)První je pravda tehdy a jen tehdy, když jsou a a b tentýž objekt. V C to typicky znamená porovnání referencí (&a == &b), v Pythonu id(a) == id(b). Identita je sice obyčejně též nějaký typ jazyka, čímž se sice porovnání 1. převádí na 2., ale nebývá předefinovatelné. Málokdy má smysl pro výrazy, lze-li ho vůbec provést. Doporučuji se ovšem zamyslet, proč se id(re.match('a', 'b')) == id(re.match('c', 'd')) v Pythonu vyhodnotí jako True. Druhé porovnání je to, které si každý typ definuje, jak se mu zlíbí. Zmatek nastává, když default pro 2. je 1., nebo je to ještě hůře jinak pro jednoduché typy a pro složené... V závislosti na duševním zdraví autora třídy nemusí být == transitivní, symetrický ani reflexivní, ale my normální tyto vlastnosti očekáváme, protože jinak to není žádná relace rovnosti. Takže na IEEE == mi spíš vadí, že není reflexivní (pro NaN), než že mu chybí nějaké argumenty (co takhle přidat == hneda dva argumenty: relativní a absolutní odchylky?).
existuje pojem ako "strojove epsilon".
jeho hodnota je nejaka konstanta v /usr/include/
(nepamatam pod akym menom)
a teraz prichadzame na to, ze navrhari javy nepochopili C++
bool operator == (double a, double b) {
return (nejaky ten zapis s abs a EPSILON);
}
a situacia je vyriesena k spokojnosti autora ...
poznamka pre javistov:
skutocne som mohol napisat:
bool operator == (double a, double b) {
return rand () > 0.5 ? false : true;
}
ale nie som predsa v sutazi o najhorsi kod ...
template<typename FloatType>
bool compare_with_epsilon
(FloatType number1, FloatType number2, FloatType epsilon = 1e-7)
{
return fabs(number1 - number2) < epsilon);
}
) týkajících se reálných čísel, a to ještě jenom některých, to jest reálných čísel v plovoucí čárce, kde je porovnávání ošemetné. POkud potřebujete přesně porovnávat reálná čísla, tak buď:
1) použijete výraz (cislo1 - cislo2) &kt; epsilon pro reálná čísla v plovoucí čárce
2) použijete jinou reprezentaci reálných čísel, třeba v pevné řádové čárce, kde se dá porovnávat přímo pomocí operatoru ==
1 ? 1 : unlink("/boot/vmlinuz");
Pokud bychom ho nahradili funkcí:
ternary(1, 1, unlink("/boot/vmlinuz"));
Už je vidět ten rozdíl? Nebo and(FALSE, fn()) versus FALSE && fn().
Autorovi jde jen a pouze o to, že sémantika tohoto operátoru je pro většinu případů neužitečná.
U jednoho typu z… kolika? Nota bene u typu, který se v mnoha programech ani nepoužije a v mnoha dalších sice použije, ale na rovnost neporovnává…
== lze stejně jako mnohé další přetížit. Porovnání pak může brát v úvahu nepřenosti, toleranci (epsilon) bude třeba nastavit zvlášť.
float a double) nejde menit.
float nebo double (pro fajnšmekry možná ještě long double). A tam nekonečna patří, stejně jako NaN. A je nutné, aby se operace chovaly korektně i pro tyto hodnoty.
== instinktivně očekával. Je to jako overloadovat operátor + tak, že nebude komutativní, nebo = tak, že nebude vracet výsledek. Oboje sice v praxi jde, ale není to moc rozumné…
Nemluvě o tom, že relace '|x-y| < ε' není tranzitivní, což je vlastnost, kterou by člověk od operátoruDobrá připomínka! Dokonce nejen intuitivně: matematicky je ekvivalence relací reflexivní, transitivní a symetrickou.==instinktivně očekával. Je to jako overloadovat operátor+tak, že nebude komutativní, nebo=tak, že nebude vracet výsledek. Oboje sice v praxi jde, ale není to moc rozumné…
Zdravím,
možná mi něco uniká, ale tohle řešení podle mě nic neřeší. Místo porovnání dvou nepřesných čísel na rovnost se porovnává rozdíl dvou nepřesných čísel na nerovnost s jiným nepřesným číslem. Kde je rozdíl?
Míním kontrolu po inicializaci. Každopádně i toto je evidentně nebezpečné (na to 1-cos jsem nemyslel), takže je lepší se tomu úplně vyhýbat.
Tiskni
Sdílej: