-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.task.gda.pl!news.dialog.net.pl!not-for-mail
From: Tomasz Sowa <t...@N...ttmath.org>
Newsgroups: pl.comp.programming
Subject: Re: Błędny epsilon - this is not a bug, this is ?
Date: Mon, 05 Nov 2012 21:35:47 +0100
Organization: Dialog Net
Lines: 64
Message-ID: <k797v2$t98$1@news.dialog.net.pl>
References: <50924bb1$0$1308$65785112@news.neostrada.pl>
<k72sqt$gq$1@news.dialog.net.pl>
<509505f2$0$1317$65785112@news.neostrada.pl>
<k734vm$43g$1@news.dialog.net.pl>
<509533d1$0$26687$65785112@news.neostrada.pl>
NNTP-Posting-Host: dynamic-78-9-153-85.ssp.dialog.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: news.dialog.net.pl 1352147746 29992 78.9.153.85 (5 Nov 2012 20:35:46 GMT)
X-Complaints-To: a...@d...net.pl
NNTP-Posting-Date: Mon, 5 Nov 2012 20:35:46 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:16.0) Gecko/20121101
Thunderbird/16.0.2
In-Reply-To: <509533d1$0$26687$65785112@news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:200507
[ ukryj nagłówki ]On 2012.11.03 16:10, slawek wrote:
>> Bo popełniasz błąd który się propaguje w każdej iteracji
>> algorytmu.
>
> Nie ma błędu. Za każdym razem jest na nowo sprawdzanie 1.0+eps > 1.0,
> tj. pętla while(1.0 + eps > 1.0) {...}
a no, tak sądziłem, sprawdź poniższy program
#include <iostream>
#include <stdint.h>
#include <iomanip>
template<typename float_t, typename int_t>
float_t machine_eps()
{
union
{
float_t f;
int_t i;
} one, one_plus, little, last_little;
one.f = 1.0;
little.f = 1.0;
last_little.f = little.f;
while(true)
{
one_plus.f = one.f;
one_plus.f += little.f;
if( one.i != one_plus.i )
{
last_little.f = little.f;
little.f /= 2.0;
}
else
{
return last_little.f;
}
}
}
int main()
{
std::cout << "machine epsilon:\n";
std::cout << "float: " << std::setprecision(18)
<< machine_eps<float, uint32_t>() << std::endl;
std::cout << "double: " << std::setprecision(18)
<< machine_eps<double, uint64_t>() << std::endl;
}
/home/tomek/roboczy/test$ g++ -o test test.cpp && ./test
machine epsilon:
float: 1.1920928955078125e-07
double: 2.22044604925031308e-16
ale to oczywiście tylko aproksymacja
--
Tomek
http://www.ttmath.org
Następne wpisy z tego wątku
- 05.11.12 22:11 kenobi
- 06.11.12 00:16 slawek
- 06.11.12 00:19 Tomasz Sowa
- 06.11.12 00:53 Roman W
- 06.11.12 00:57 Roman W
- 06.11.12 03:28 bartekltg
- 06.11.12 06:35 Roman W
- 06.11.12 10:46 slawek
- 06.11.12 11:31 AK
- 06.11.12 11:43 Adam Wysocki
- 06.11.12 11:48 AK
- 06.11.12 11:50 Michoo
- 06.11.12 12:02 Michoo
- 06.11.12 12:05 AK
- 06.11.12 13:31 Roman W
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-17 Wróblewo => Analityk finansowy <=
- 2025-01-17 Żerniki => Specjalista ds. Employer Brandingu <=
- 2025-01-17 pradnica krokowa
- 2025-01-17 Warszawa => International Freight Forwarder <=
- 2025-01-17 Warszawa => Helpdesk Specialist <=
- 2025-01-17 Kraków => User Experience Designer <=
- 2025-01-17 Nieustający podziw...
- 2025-01-17 zawsze parkuj tyłem do ulicy
- 2025-01-16 nie będzie naprawy pod blokiem?
- 2025-01-16 korytarz zycia
- 2025-01-16 Katowice => Key Account Manager (ERP) <=
- 2025-01-16 Środa Wielkopolska => Specjalista ds. public relations <=
- 2025-01-16 Poznań => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-16 Gdańsk => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-16 Re: Bodnatura BARDZO tanio wyceniła Owsiaka. HAŃBA!