-
Data: 2013-03-25 18:40:31
Temat: Re: Nowoczesne procesory - jak to z nimi jest?
Od: "AK" <n...@n...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "M.M." <m...@g...com> napisał:
>> Kto Ci powiedzial ze fp C/C++ jest zapisane w postaci poteg dwojki ?
>> A moze sa pamietane decymalnie ? Albo siodemkowo ?
>
>Nikt mi nic takiego nie mówił, ani ja nic takiego nie mówię.
>
> Mówię tylko to, że jeśli jeden raz pow(3.0,2.0) równa się 9.0 na ostro, a
> drugi raz nie równa się, to ten pierwszy raz jest dokładniej.
Otoz nie.
Moze sie okazac, ze ten koproc/kompilator ktory akurat daje dokladnie
w tym przypadku pow(3.0,2.0), w wiekszosci innych przypadkow
sie "myli", natomiast ten gdy ten gorszy liczy "dobrze".
> Być może taka dokładność jest okupiona wolniejszym wykonaniem.
Byc moze, a byc moze nie (np inna reprezentacja wewnetrzna,
inna dlugoscia akumulatora itp).
Naprawde dyskusje o fp sa toczone na usenecie od zawsze (rowniez przeze
mnie wiec na stare lata sobie dam spokoj z nawracaniem kolejnego pokolenia
"mlodych gniewnych wiedzacych lepiej" bo mi szkoda resztek zycia.
Zalosc tylko bierze, ze na studiach tak podstawowej rzeczy nie ucza jak
traktowanie liczb fp w jezykach programowania jako ZAWSZE
obarczonych pewnym bledem.
Ta "niedokladnosc" nalezy traktowac nie jako neidoskonalosc
kompilatora/procesora ale jako NATURE tych liczb.
Owszem, ciagle w kompilatorach dazy sie do uleopszen w celu
molziwie najwiekszej dokladnosci/mozliwie najwiekszemu zneutralizowaniu
tej CECHY fp, ale absolutnie nie nalezy tego uwazac za
"zalatwienie" problemu. (Przyklad ostatnich ulepszen dla Pythona
na koncu).
Hint: szukaj chocby mych postow tyczacych fp
(Google: Adam Karpierz, liczby zmiennoprzecinkowe), a jak mi
nie wierzysz to spojrz do pierwszej ksiazki jaka przeczytalem po
postanowieniu nauczenia sie programowania:
prof Maciej Syslo "Algorytmy optymalizacji w jezyku Algol60"
a tam w pierwszym algorytmie - simplex - jak byk stoi cos w rodzaju
if abs(x - y) <= EPS then // czyli odpowiednik x == y
begin
comment Solution found;
...
end;
Pozdrawiam
AK
------------------
.
Conversions between floating-point numbers and strings are now correctly rounded on
most platforms.
These conversions occur in many different places: str() on floats and complex
numbers; the float and
complex constructors; numeric formatting; serializing and deserializing floats and
complex numbers
using the marshal, pickle and json modules; parsing of float and imaginary literals
in Python code;
and Decimal-to-float conversion.
Related to this, the repr() of a floating-point number x now returns a result based
on the shortest
decimal string that's guaranteed to round back to x under correct rounding (with
round-half-to-even
rounding mode). Previously it gave a string based on rounding x to 17 decimal digits.
The rounding library responsible for this improvement works on Windows and on Unix
platforms using
the gcc, icc, or suncc compilers. There may be a small number of platforms where
correct operation
of this code cannot be guaranteed, so the code is not used on such systems. You can
find out which
code is being used by checking sys.float_repr_style, which will be short if the new
code is in use
and legacy if it isn't.
Implemented by Eric Smith and Mark Dickinson, using David Gay's dtoa.c library; issue
7117.
.
Conversions from long integers and regular integers to floating point now round
differently,
returning the floating-point number closest to the number. This doesn't matter for
small integers
that can be converted exactly, but for large numbers that will unavoidably lose
precision, Python
2.7 now approximates more closely. For example, Python 2.6 computed the following:
>>>>>> n = 295147905179352891391
>>> float(n)
2.9514790517935283e+20
>>> n - long(float(n))
65535L
Python 2.7's floating-point result is larger, but much closer to the true value:
>>>>>> n = 295147905179352891391
>>> float(n)
2.9514790517935289e+20
>>> n - long(float(n))
-1L
(Implemented by Mark Dickinson; issue 3166.)
Integer division is also more accurate in its rounding behaviours. (Also implemented
by Mark
Dickinson; issue 1811.)
Następne wpisy z tego wątku
- 25.03.13 19:36 M.M.
- 26.03.13 10:21 darekm
- 26.03.13 12:25 M.M.
- 26.03.13 14:42 darekm
- 26.03.13 14:48 AK
- 26.03.13 14:57 firr kenobi
- 26.03.13 15:32 AK
- 26.03.13 15:41 M.M.
- 26.03.13 17:43 M.M.
- 26.03.13 19:02 Adam Klobukowski
- 26.03.13 19:10 M.M.
- 26.03.13 22:00 M.M.
- 26.03.13 22:01 Adam Klobukowski
- 26.03.13 22:11 Adam Klobukowski
- 26.03.13 22:29 M.M.
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-03 Dlaczego nikt nie powiadamia służb!
- 2025-07-02 Jaka ładowarka sieciowa do Iphona?
- 2025-07-02 ,,The Plot to Get RFK" (,,Spisek, by pozbyć się RFK")
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Rozkaz 16-2025: 2025-06-19 Apelacja Do Wyroku Sądu Rej. w Sprawie IVRNs 295-23
- 2025-07-02 Rozkaz 17-2025: O Zaprzestaniu Zaciągania Kredytów
- 2025-07-02 Inżynierowie... inżynierzy...
- 2025-07-02 Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- 2025-07-02 Kto potrafi sprawdzić aku BMW 48V 10Ah Li-Ion do mini hybrydy, czy sprawny ?
- 2025-07-02 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-02 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-02 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-02 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-02 Znaleziony
- 2025-07-02 Warszawa => Data Developer <=