STANDARD IEEE 754 PRZETWARZANIE LICZB

advertisement
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Politechnika Białostocka
Wydział Elektryczny
Katedra Elektrotechniki Teoretycznej i Metrologii
Instrukcja do zajęć
Podstawy informatyki
pracownia specjalistyczna
Tytuł ćwiczenia
STANDARD IEEE 754
PRZETWARZANIE LICZB ZMIENNOPRZECINKOWYCH
Numer ćwiczenia
PI05
Autor:
Bogusław Butryło
Spis treści
1. Wstęp.............................................................................................................3
2. Ogólna postać zapisu liczb zmiennoprzecinkowych .................................3
2.1. Dwójkowy zapis zmiennoprzecinkowy.....................................................5
2.2. Dziesiętny zapis zmiennoprzecinkowy ....................................................6
3. Dostępne formaty reprezentacji liczb..........................................................7
4. Informacje o binarnym kodowaniu liczb.....................................................8
5. Zakres reprezentowanych wartości...........................................................11
5.1. Zakres i precyzja reprezentacji liczb......................................................11
5.2. Sygnalizowane błędy.............................................................................13
6. Błędy obliczeń zmiennoprzecinkowych....................................................13
6.1. Błąd obliczania sumy i róŜnicy...............................................................14
6.2. Błąd obliczania iloczynu i ilorazu ...........................................................15
7. Zadania do wykonania................................................................................16
7.1. Liczby rzeczywiste i liczby maszynowe .................................................16
7.2. Określenie sposobu kodowania danych ................................................19
7.3. Obliczenia przebiegu funkcji..................................................................20
7.4. Operacje na liczbach małych i duŜych...................................................21
7.5. Obliczenia wielomianów ........................................................................23
7.6. Obliczenia iloczynu skalarnego .............................................................25
8. Informacje o dostępnych programach ......................................................27
9. Przykładowe zagadnienia na zaliczenie ....................................................28
10. Literatura .....................................................................................................29
11. Wymagania BHP .........................................................................................30
_____________
Materiały dydaktyczne przeznaczone dla studentów Wydziału Elektrycznego PB.
© Wydział Elektryczny, Politechnika Białostocka, 2012
Białystok 2012
Wszelkie prawa zastrzeŜone. śadna część tej publikacji nie moŜe być kopiowana i odtwarzana w
jakiejkolwiek formie i przy uŜyciu jakichkolwiek środków bez zgody posiadacza praw autorskich.
2
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
• dwójkowej reprezentacji zmiennoprzecinkowej (BFP, ang. binary floating-point),
w której wpisana liczba jest przetwarzana na zapis dwójkowy (baza systemu
B=2)
1. Wstęp
Zasady
komputerowej
reprezentacji
i
przetwarzania
liczb
zmiennoprzecinkowych zostały sprecyzowane w standardzie IEEE 754. Jego
pierwsza wersja (IEEE 754-1985) została opublikowana w roku 1985. Modyfikację i
rozszerzenie standardu przedstawiono w roku 2008. Standard IEEE 754.2008,
opracowany przez IEEE (ang. Institute of Electrical and Electronics Engineers)
został potwierdzony w specyfikacji standardu ISO 60559:2011 podanej przez
International Standard Organization.
W ramach standardu IEEE 754-2008 określone są m.in.:
• zasady zapisu liczb zmiennoprzecinkowych przy uwzględnieniu, Ŝe tworzony
zapis bazuje na reprezentacji dwójkowej lub dziesiętnej;
• zasady zapisu liczb w postaci znormalizowanej oraz zdenormalizowanej;
• dostępne formaty reprezentacji danych zmiennoprzecinkowych;
• zasady reprezentacji binarnej (niskopoziomowej) liczb;
• sposoby zapisu / sygnalizacji podstawowych
obliczeniami zmiennoprzecinkowymi;
błędów
związanych
z
• zasady realizacji podstawowych operacji matematycznych na liczbach
zmiennoprzecinkowych, w tym reguły zaokrąglania liczb maszynowych.
2. Ogólna postać zapisu liczb zmiennoprzecinkowych
Liczby rzeczywiste, wprowadzane do komputera w zapisie dziesiętnym,
podlegają automatycznemu przetworzeniu do jednej z postaci przewidzianych w
standardzie IEEE 754-2008. Ogólna postać zapisu liczb zmiennoprzecinkowych to
wpisana liczba X 10
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
− 754
IEEE

→
fl ( X B ) = (− 1) ⋅ M B ⋅ BWB ,
S
(1)
gdzie B to baza systemu (ang. radix), zaś fl(XB) oznacza wartość liczby w zapisie
zmiennoprzecinkowym, która wynika z ograniczeń zapisu komputerowego. W
ramach standardu podano specyfikacje dwóch form zapisu:
3
wpisana liczba X 10
− 754
IEEE

→
fl ( X 2 ) = (− 1) ⋅ M 2 ⋅ 2W2 ,
S
(2)
• dziesiętnej reprezentacji zmiennoprzecinkowej (DFP, ang. decimal floating
point) w której bazą B systemu jest liczba 10
wpisana liczba X 10
− 754
IEEE

→
fl ( X 10 ) = (− 1) ⋅ M 10 ⋅10W10 .
S
(3)
Obecnie podstawowym sposobem wewnętrznej reprezentacji liczb
zmiennoprzecinkowych w komputerach jest zapis BFP, z bazą B=2. Dominująca
liczba programów wykorzystuje zmiennoprzecinkową arytmetykę binarną.
Dziesiętny zapis zmiennoprzecinkowy (DFP) został wprowadzony do
standardu w roku 2008. Pozwala on rozszerzyć zakres reprezentowanych liczb.
Precyzja reprezentacji, podobnie jak w zapisie dwójkowym, jest ograniczona.
Wynika ona z dostępnej liczby cyfr znaczących mantysy, czyli z długości
reprezentacji komputerowej liczb (liczby bajtów potrzebnych na zapis całej liczby).
Zapis dziesiętny eliminuje błędy związane z transformacją liczb dziesiętnych na
system dwójkowy. W dalszej kolejności moŜliwe jest w ten sposób ograniczenie
błędów powstających przy późniejszych obliczeniach. Nie przekłada się to jednak
na przyspieszenie obliczeń.
Zgodnie z wzorami (2) i (3), niezaleŜnie od bazy systemu, liczby
zmiennoprzecinkowe są pamiętane w postaci 3 liczb całkowitych:
• S - znak liczby (ang. sign bit);
• M - mantysa liczby (ang. significand), w zapisie dwójkowym M2 lub dziesiętnym
M10;
• W - wykładnik liczby (ang. exponent) określany przy uwzględnieniu dwójkowej
(W2) lub dziesiętnej (W10) bazy systemu.
4
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
2.1. Dwójkowy zapis zmiennoprzecinkowy
Zasadnicza część standardu, określona w wersji z roku 1985, dotyczy
dwójkowej reprezentacji liczb zmiennoprzecinkowych (BFP). W tej formie
reprezentacji, zarówno mantysa jak teŜ wykładnik są najpierw przetwarzane na
liczby w zapisie binarnym (B=2) i następnie kodowane. WyróŜnia się przy tym:
• postać znormalizowaną, stosowaną dla zdecydowanej większości liczb,
• postać zdenormalizowaną, przewidzianą do zapisu bardzo małych liczb, dla
których wykładnik W2 osiągnął najmniejszą dopuszczalną wartość. W dalszym
opisie pominięto dyskusję tego przypadku.
Normalizacji podlega binarna postać liczby. Polega to na przesunięciu
przecinka tak, aby przed nim znalazła się jedna (wiodąca) jedynka. Efektem tej
operacji jest równieŜ obliczenie wykładnika, który wskazuje rzeczywiste połoŜenie
przecinka w dwójkowym zapisie liczby. Przykłady liczb przed i po normalizacji
przedstawiono w tabeli 1.
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Po wykonaniu normalizacji, na bitach mantysy jest pamiętana jedynie część,
która znalazła się za przecinkiem (ułamek). Ewentualne wolne bity części
ułamkowej po prawej stronie są uzupełniane zerami. Wiodąca jedynka (przed
przecinkiem) i przecinek są pomijane (tzw. zapis z pominiętą / zapomnianą
jedynką). W tabeli 1 kolorem Ŝółtym zaznaczono „usuwane” elementy zapisu liczb.
Zapomniana jedynka i przecinek są oczywiście „odtwarzane” w rejestrach jednostki
zmiennoprzecinkowej, przed wykonaniem obliczeń.
2.2. Dziesiętny zapis zmiennoprzecinkowy
Przy stosowaniu DFP normalizacji podlega liczba w zapisie dziesiętnym. Jej
postać jest modyfikowana tak, aby znaczące cyfry zajęły wszystkie dostępne pola
mantysy M10 (bez wiodących zer z lewej strony). Rzeczywiste połoŜenie przecinka
jest odzwierciedlone w wartości wykładnika W10. W tabeli 2 przedstawiono
przykłady zapisu liczb z bazą B=10.
Tabela 2. Przykłady dziesiętnego zapisu liczb zmiennoprzecinkowych (B=10),
przy załoŜeniu Ŝe mantysa M10 składa się z siedmiu cyfr znaczących.
Wartości kolejnych pól (1)
Wpisana liczba
Zapis DFP
X10
fl(X10)
S
M10
W10
Tabela 1. Przykłady binarnego zapisu liczb zmiennoprzecinkowych.
ZałoŜono, Ŝe mantysa M2 składa się z co najwyŜej 7 bitów.
Zapis binarny
Wartości kolejnych pól (1)
Wpisana liczba
przed normalizacją
po normalizacji
X10
S
M2
W2
X2
fl(X2)
9,0
25,125
-5,25
-103,5
0,625
-0,078125
-11,3
1001,0
11001,001
-101,01
-1100111,1
0,101
-0,000101
+1,0010000·2
3
+1,1001001·2
4
-1,0101000·2
2
-1,1001111·2
6
+1,0100000·2
-1
-1,0100000·2
-4
-1011,010011 -1,0110101·23
0
0
1
1
0
1
1
0010000
1001001
0101000
1001111
0100000
0100000
0110101
9,0
+9000000·10-6
0
9000000
-6
3
9,0
-1
0
0000090
-1
4
25,125
+2512500·10-5
0
2512500
-5
2
25,125
-3
0
0025125
-3
6
-5,123456
-5123456·10-6
1
5123456
-6
-1
-100043,5
-1
1
1000435
-1
-4
0,015625475
+1562548·10-8
0
1562548
-8
123456789,4
+1234568·10
+2
0
1234568
+2
-5978990·10
+1
1
5978990
+1
3
W celu uproszczenia zapisu wartości W2 podano w zapisie dziesiętnym. W rzeczywistości pola
wykładnika W2 podlegają kodowaniu binarnemu, z uŜyciem kodu Excess o dobranym
przesunięciu. Pola binarne mantysy ograniczono do 7 bitów. W dostępnych formatach zapis
mantysy składa się z większej liczby bitów (tabela 6).
-59789904
(1)
5
+0000090·10
+0025125·10
-1000435·10
W celu uproszczenia zapisu wartości M10 i W10 podano w zapisie dziesiętnym.
W rzeczywistości pola mantysy M10 i wykładnika W10 podlegają kodowaniu binarnemu,
z uŜyciem wybranych kodów.
(1)
6
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
W przypadku liczb ułamkowych i małych co do modułu, normalizacja wiąŜe się
z przesuwaniem przecinka w prawo, tak aby zapis liczby przyjął postać liczby
całkowitej. Oczywiście ulega przy tym zmianie wartość wykładnika.
Liczby, w których jest mało cyfr znaczących nie podlegają normalizacji.
Zgodnie ze standardem mogą one mieć róŜne formy zapisu (np. liczby 9 oraz
25,125 w tabeli 2).
3. Dostępne formaty reprezentacji liczb
W ramach standardu określono podstawowe, dostępne formaty zapisu BFP
(dwójkowego) i DFP (dziesiętnego) (tabela 3).
Tabela 4. Dodatkowe, połówkowe formaty reprezentacji zmiennoprzecinkowej.
Nazwa
binary16
Typowa nazwa
Baza zapisu
B
Wielkość zapisu liczby
NL
połówkowa precyzja
ang. half precision
2
2B
10
4B
decimal32
Ze względów historycznych występuje jeszcze tzw. precyzja rozszerzona
(tabela 5). W ramach standardu dopuszczono jej stosowanie. Rozszerzona
reprezentacja liczb zmiennoprzecinkowych jest dostępna jedynie na wybranych
platformach sprzętowych i przy stosowaniu wybranych kompilatorów.
Tabela 5. Inne dopuszczone formaty reprezentacji zmiennoprzecinkowej.
Tabela 3. Podstawowe formaty reprezentacji zmiennoprzecinkowej.
Typowa nazwa
Baza zapisu
B
Wielkość zapisu liczby
NL
binary32
pojedyncza precyzja
ang. single precision
2
4B
binary64
podwójna precyzja
ang. double precision
2
8B
poczwórna precyzja
ang. quadruple precision
2
16 B
Nazwa
binary128
decimal64
10
8B
decimal128
10
16 B
Nazwa
extended
Typowa nazwa
Baza zapisu
B
Wielkość zapisu liczby
NL
rozszerzona precyzja
ang. extended precision
2
10 B
4. Informacje o binarnym kodowaniu liczb
Dopuszczono równieŜ dwa formaty skrócone, połówkowe (tabela 4). Nie są to
formaty podstawowe, do powszechnego uŜycia. Mogą być stosowane do zapisu
(przechowania) wartości liczbowych. Ich przyjęcie pozwala wprowadzić skróconą
reprezentację w wybranych aplikacjach (np. ekonomicznych, bankowych), w
których wystarcza zapamiętanie 2-4 cyfr po przecinku. Dwójkowy format
połówkowy (tzw. binary16) jest stosowany przy przetwarzaniu w niektórych
procesorach graficznych.
7
Specyfikacja standardu określa równieŜ techniczne szczegóły kodowania pól
mantysy i wykładnika w zapisie BFP (M2 i W2) oraz DFP (M10, W10). Wskazany opis
jest istotny dla zrozumienia pojęcia liczba maszynowa, określenia precyzji i
zakresu reprezentowanych liczb. Szczegóły binarnego zapisu liczb nie mają
znaczenia przy programowaniu w językach wysokiego poziomu, czy teŜ
korzystaniu ze standardowych bibliotek zawierających procedury do obliczeń
zmiennoprzecinkowych (np. dla układów FPGA, procesorów sygnałowych).
W tabeli 6 zestawiono główne parametry charakteryzujące omawiane formaty
zapisu zmiennoprzecinkowego. Przyjęto następujące oznaczenia:
NL
liczba bajtów, na których jest zapisywana liczba w danej
reprezentacji;
NS
liczba bitów na zapis znaku liczby (S);
8
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
NW
NM
max W10
P10
liczba bitów na zapis wykładnika (W);
liczba bitów na zapis mantysy (M);
maksymalny wykładnik w systemie dziesiętnym, który moŜna zapisać;
precyzja zapisu, wyraŜona jako liczba cyfr w dziesiętnym zapisie
liczby, które zostaną zachowane bez błędu. JeŜeli liczba dziesiętna
złoŜona z P10 znaczących cyfr zostanie zamieniona z zapisu
„rzeczywistego” na numeryczny zmiennoprzecinkowy i następnie z
powrotem na „rzeczywisty”, to co najmniej P10 cyfr pozostanie
niezmienionych.
Tabela 6. Wybrane parametry zmiennoprzecinkowych reprezentacji liczb.
Nazwa
NL
NS
NW
NM
binary16
max W10
P10
2B
1b
5b
10 b
+5
3
binary32
4B
1b
8b
23 b
+38
7
binary64
8B
1b
11 b
52 b
+308
15
binary128
16 B
1b
15 b
112 b
+4932
34
extended
10 B
1b
15 b
64 b
+4932
18
decimal32(1)
4B
1b
6b
20 b
+96
7
decimal64(1)
8B
1b
8b
50 b
+384
16
decimal128(1)
16 B
1b
12 b
110 b
+6144
34
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Wewnętrzna reprezentacja liczby w formatach DFP nie ma wpływu na zakres i
precyzję zapisu.
Oczywiście, w końcowej formie, zarówno przy dwójkowym jak teŜ dziesiętnym
zapisie zmiennoprzecinkowym, wszystkie pola są kodowane binarnie. W ramach
zmiennoprzecinkowego zapisu liczb nie ma Ŝadnych metod kontroli i weryfikacji
poprawności zapisu / odczytu danych. Nie jest to powaŜny problem przy
przetwarzaniu w ramach danego urządzenia. Ze względu na moŜliwe zakłócenia
przy przesyłaniu tego typu danych na znaczne odległości, do kontroli poprawności
moŜliwe, a czasami niezbędne, jest stosowanie róŜnych zewnętrznych metod
kontroli, m.in. wprowadzenie słowa kontrolnego, sygnatury pakietu danych, itp.
Techniczne zasady kodowania liczb w formacie BFP oraz zapisach dostępnych
dla DFP przedstawiono na rys. 1.
(a)
S
W2
M2 bez wiodącej jedynki i przecinka
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
NS=1
NW
(b)
S
W10
NM
M10 w formacie binary integer significand
lub formacie densely packed decimal significand
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
W zapisie wyróŜniono jeszcze 5 bitów kodujących róŜne formy reprezentacji
wykładnika i mantysy.
(1)
NS=1
NW
NM
Ze względu na sposób kodowania liczb wyróŜnia się:
Dodatkowe bity kodujące
postać W10 i M10
• format dla reprezentacji BFP, uwzględniający zapis liczb znormalizowanych i
bez normalizacji (bardzo małych);
• formaty dla reprezentacji DFP, w tym:
o zapis binarny mantysy M10 jako liczby całkowitej (ang. binary integer
significand field), czyli zapis mantysy w typowym kodzie wagowym BCN;
o zapis binarny, w którym poszczególne cyfry mantysy M10 są kodowane
osobno. W kodowaniu cyfr mantysy wykorzystuje się kod DPD (ang.
densely packed decimal significand field), który jest skompresowaną formą
kodu BCD.
9
Rys. 1. Ogólna idea reprezentacji liczb w zmiennoprzecinkowym zapisie:
(a) dwójkowym BFP (B=2), (b) dziesiętnym DFP (B=10).
Jedynie kodowanie bitu znaku S jest jednakowe w BFP i DFP. Bit znaku liczby
(S) znajduje się na początku i przyjmuje wartość 0 dla liczb dodatnich oraz wartość
1 dla liczb ujemnych (taką formę kodowania uwzględniono w tabelach 1 i 2).
10
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Wykładnik W2 (w zapisie BFP) jest kodowany jako liczba całkowita, z
wykorzystaniem kodu z przesunięciem (tzw. kod Excess). Podobnie jest w
reprezentacji DFP, przy czym szczegóły kodowania i wartość przesunięcia są inne.
Odpowiednia kombinacja bitów kodujących mantysę i wykładnik określa sposób ich
interpretacji.
W zapisie zmiennoprzecinkowym nie jest moŜliwe przedstawienie kaŜdej
liczby nawet w przedziale liczb teoretycznie moŜliwych do zapisu. Dotyczy to
zarówno liczb bardzo małych, liczba duŜych, jak teŜ liczb zawierających duŜo cyfr
znaczących (np. ułamków okresowych). NiemoŜliwe jest precyzyjne odwzorowanie
liczb, których zapis binarny (BFP) lub zapis dziesiętny (DFP) wykracza poza
dostępne pola mantysy. Główne przyczyny braku reprezentacji części liczb, które
5. Zakres reprezentowanych wartości
teoretycznie mieszczą się w zakresie ⟨-Xmax, -Xmin⟩ oraz ⟨Xmin, Xmax⟩ to:
• skończona długość mantysy (bitów przewidzianych na zapis mantysy);
• zapis ułamków okresowych, liczb niewymiernych;
5.1. Zakres i precyzja reprezentacji liczb
W porównaniu z kodami stałopozycyjnymi, stosowanymi do zapisu liczb
całkowitych, format zmiennoprzecinkowy znacznie zwiększa zakres dostępnych
liczb. Na osi liczbowej, niezaleŜnie od formy zapisu (BFP lub DFP) wyróŜnić
moŜna trzy zakresy reprezentowalnych, dostępnych liczb: zakres liczb ujemnych,
zero oraz zakres liczb dodatnich (rys. 2). Krańce pasma reprezentowalnych liczb
Xmax są określone przez liczbę bitów NW przewidzianych na wykładnik. Wartości NW
oraz maksymalne moŜliwe do zapisania wartości wykładnika zestawiono w tabeli 6.
Dolne granice Xmin równieŜ wynikają z liczby pól bitowych wykładnika. Zapis
bardzo małych liczb, których rzeczywisty wykładnik nie mieści się na polach
wykładnika, jest zaokrąglany do 0. Bit znaku S zachowuje przy tym znak
przybliŜenia, z tego powodu w ramach standardu IEEE 754.2008, rzeczywista
wartość 0, ma dwie reprezentacje: 0+ (zero plus) i 0- (zero minus).
-Xmax
dostępne liczby -
-Xmin
0
Z tego względu wprowadza się pojęcie tzw. liczby maszynowej, oznaczonej
juŜ wcześniej symbolem fl(X). Jest to liczba reprezentowana w ramach danego
formatu IEEE 754-2008, która jest odwzorowaniem rzeczywistej wpisanej liczby X.
RóŜnica między X i fl(X) jest podstawową przyczyną błędów obliczeń
numerycznych (rozdz. 6). Długość zapisu mantysy przesądza zatem o precyzji
arytmetyki ε (dokładności zapisu liczb). W zapisach dwójkowych precyzja
arytmetyki wyraŜa się wzorem
ε BFP = 2 − N
niedomiar zapis 0+ i 0niedomiar +
nadmiar -
• sposób reprezentacji liczb dziesiętnych po zmianie reprezentacji na system
dwójkowy (w ramach formatu BFP). Ze względu na zmianę podstawy systemu
liczbowego z 10 na 2, niektóre liczby które w zapisie dziesiętnym mają
skończoną, dokładną reprezentację, w systemie dwójkowym nie wykazują tej
właściwości.
M
−1
,
(4)
natomiast w zapisach dziesiętnych
dostępne liczby +
Xmin
nadmiar +
Xmax
ε DFP = 10 − P .
10
(5)
Błąd dx zapisu zmiennoprzecinkowego liczby fl ( X ) = X + d X jest określony
X
relacją
Rys. 2. Poglądowe zestawienie zakresów dostępnych liczb
oraz błędów sygnalizowanych w ramach standardu IEEE 754-2008.
dX ≤ ε .
11
12
(6)
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
5.2. Sygnalizowane błędy
W ramach standardu przewidziano równieŜ kodowanie informacji o błędach.
Informacje o błędzie są kodowane w ramach pola znaku S, pola wykładnika W
oraz mantysy M. WyróŜnia się błędy krytyczne, które powinny powodować
przerwanie obliczeń jak teŜ niekrytyczne. Ich wystąpienie jest sygnalizowane,
jednak algorytm moŜe być dalej realizowany. Zgodnie z rys. 2, błędem
niekrytycznym jest wystąpienie niedomiaru + lub niedomiaru -. Brak moŜliwości
zapisu liczb bardzo małych prowadzi do ich przybliŜenia do wartości 0+ lub 0-.
Pozostałe błędy to:
• nadmiar dodatni lub nadmiar ujemny, pojawiający się przy przekroczeniu
zakresu reprezentowalnych liczb i sygnalizowany symbolem INF+ lub INF-;
• NaN (ang. not a number), który ma miejsce gdy odczytana kombinacja binarna
nie moŜe być zidentyfikowana jako poprawny zapis zmiennoprzecinkowy lub
wywoływana funkcja nie moŜe być policzona dla danych wartości zmiennych.
W standardzie IEEE 754.2008 wyróŜniono błąd NaN sygnalizowany (ang. NaN
signaling) oraz niesygnalizowany (ang. NaN quiet).
6. Błędy obliczeń zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
rozszerzone rejestry do przechowywania wyników obliczeń. Dopiero uzyskany
rezultat, opisany na większej liczbie bitów, podlega ograniczeniu zgodnemu ze
standardem IEEE 754-2008
IEEE −754
X 
→ fl ( X ) 

IEEE −754
Y  → fl (Y ) 
wynik
IEEE − 754
fl ( X ) ⊗ fl ( y ) 
→ S 
→ fl (S ) ,
(7)
gdzie ⊗ oznacza dowolną operację arytmetyczną.
6.1. Błąd obliczania sumy i róŜnicy
ZałóŜmy, Ŝe dane są dwie liczby X i Y, które zostały przetworzone na
wartości maszynowe
fl ( X ) = X + d X ,
(8)
fl (Y ) = Y + d Y .
(9)
Błąd obliczeń sumy moŜna oszacować na podstawie zaleŜności
WS = fl ( X ) + fl (Y ) ,
(10)
WS = X + d X + Y + d Y ≈ ( X + Y ) + d S ,
(11)
przy czym maksymalny błąd określenia wyniku wyraŜa się wzorem
Liczby wpisywane przez uŜytkownika, podlegają przetworzeniu do liczby
maszynowej w ramach przyjętego w programie (na danej platformie sprzętowej)
formatu zapisu binarnego BFP lub dziesiętnego DFP. Rzeczywiste wartości liczb
są zatem w ogólnym przypadku odwzorowane z błędami. Błędy reprezentacji liczb
przekładają się na błędy wyników wykonywanych operacji matematycznych. Liczba
wykonywanych operacji ma zatem wpływ na wielkość błędów.
PoniŜej przedstawiono wyprowadzenia zaleŜności określających wartość
błędu przy obliczaniu sumy oraz iloczynu dwóch liczb zmiennoprzecinkowych.
Wyprowadzone wzory mają charakter ogólny. W rzeczywistości błąd obliczeń jest z
zasady mniejszy. Wynika to z konstrukcji jednostek do obliczeń
zmiennoprzecinkowych. W celu poprawy dokładności obliczeń zawierają one
13
d S = d X + dY .
(12)
Względny błąd wyniku oblicza się jako iloraz błędu bezwzględnego i wartości
dokładnej
δS =
dS
d + dY
= X
.
X +Y
X +Y
(13)
Po przekształceniach
δS =
14
dX
X
d
Y d
X
d
Y
⋅ + Y ⋅ = X ⋅
+ Y ⋅
,
X +Y X X +Y Y
X X +Y Y X +Y
(14)
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
δ I = δ X + δY .
otrzymuje się zaleŜność
δ S = δ X ⋅ wX + δ Y ⋅ wY ,
(15)
przy czym
d
δX = X ,
X
dY
δY =
,
Y
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
(22)
Obliczanie iloczynu (ilorazu) prowadzi do kumulacji względnych błędów czynników.
7. Zadania do wykonania
(16)
7.1. Liczby rzeczywiste i liczby maszynowe
(17)
to względne błędy zapisu liczb X i Y, zaś wX = X / ( X + Y ) , wY = Y / ( X + Y ) to
współczynniki określające udział danej liczby w sumie. Interpretacja wzoru (15)
prowadzi do wniosku, Ŝe przy dodawaniu (odejmowaniu) zmiennoprzecinkowym
błędy zapisu liczb fl(X) i fl(Y) podlegają propagacji.
W pierwszym punkcie moŜliwe jest ustalenie, jaka jest rzeczywista
reprezentacja wpisywanych liczb zmiennoprzecinkowych i precyzja arytmetyki,
przy stosowaniu formatów BFP dostępnych w programach komputerowych.
1. Uruchomić program ieee754_01.exe (szczegóły w rozdz. 8). Liczba wpisana w
systemie dziesiętnym w górnym oknie programu podlega dwukrotnemu
przetworzeniu (rys. 3).
6.2. Błąd obliczania iloczynu i ilorazu
Wpisana liczba X10
Przetwarzane są dwie liczby opisane wzorami (8) i (9). Wynik iloczynu
(ilorazu) tych liczb w zapisie zmiennoprzecinkowym wynosi
WI = fl ( X ) ⋅ fl (Y ) ,
WI = ( X + d X ) ⋅ (Y + d Y ) =
≈ XY + d X Y + dY X + d X dY .
IEEE-754
binary32(X10)
IEEE-754
[binary32(X10)]10
(18)
IEEE-754
binary64(X10)
IEEE-754
[binary64(X10)]10
(19)
IEEE-754
extended(X10)
IEEE-754
[extended(X10)]10
Rys. 3. Sposób przetwarzania liczby w ramach programu ieee754_01.exe.
śółte pola wskazują wartości pokazywane w oknie programu.
Przy pominięciu ostatniego czynnika, dXdY≈0, maksymalny błąd obliczeń wynosi
d I = d X Y + dY X .
W programie moŜliwe jest równieŜ ustawienie sposobu reprezentacji liczby
(rys. 4). W celu analizy wyników przetwarzania liczb naleŜy zwrócić szczególną
uwagę na ustawienie pól „Liczba znaków” oraz „Liczba cyfr po przecinku”.
(20)
Względna wartość błędu wyraŜa się wzorem
δI =
dI
d Y + d Y X d X Y dY X
= X
=
+
.
X ⋅Y
X ⋅Y
X ⋅Y X ⋅Y
(21)
Uwzględniając wzory (16)-(17) otrzymuje się zaleŜność
15
16
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Tabela 7. Wybrane stałe liczbowe przydatne do testów.
Nazwa, opis
stała Plancka h
6,62606957(29) —10-34 Js
masa spoczynkowa elektronu me
9,10938291(40)—10-29 g
jednostka masy atomowej 1u
1,660538921(73)—10-24 g
ładunek elektronu 1e
-1,602176565(35)—10-19 C
przenikalność elektryczna powietrza ε0
8,854187817—10-12 F/m
przenikalność magnetyczna próŜni µ0
12,566370614—10-7 H/m
definicja ampera: siła działająca na przewody przy I=1A
2
Rys. 4. Ogólny widok okna programu ieee754_01.exe.
Wartość
2—10-7 N
1,4142 1356 2373 0950 4880
1688 7242 0969 8078 5696 ...
względna przenikalność elektryczna polietylenu εr
2,25
względna przenikalność elektryczna polistyrenu εr
2,7
e (podstawa logarytmu naturalnego)
2,7182 8182 8458 5634 1127
7850 6062 0264 2376 7855 ...
π
3,1415 9265 3589 7932 3846
2643 3832 7950 2884 1971 ...
przyspieszenie ziemskie normalne g
9,80665 ms-2
przyspieszenie ziemskie w Krakowie
9,8105 ms-2
• liczb bardzo małych;
przyspieszenie ziemskie w Warszawie
9,8123 ms-2
• skończonych ułamków dziesiętnych, np. 0,1; 0,2; 0,25; 0,3; 0,4; 0,45; 0,5;
0,55; 0,7; 0,75; itp.;
przelicznik cali na milimetry
2. Wykonać próby zapisu i porównać otrzymane reprezentacje róŜnych liczb
(tabela 7), m.in.:
• liczb będących kombinacją liczby całkowitej i ułamka, np. 3,1; 3,14; 3,142;
4,2; 4,25; 4,5; 4,55; 7,18; itp.;
temperatura zera bezwzględnego
rok gwiazdowy
rezystancja falowa próŜni
średni promień równika
• liczb całkowitych, np. 1, 2, 10, -260, 1410, 2012;
przelicznik kWh na Joule:
• liczb niewymiernych;
definicja metra, liczba okresów drgań kryptonu 86Kr
• liczb całkowitych duŜych co do modułu, z małą liczbą cyfr znaczących, np.
234000; 2340000000; 234000000000000;
definicja sekundy, liczba okresów drgań atomu cezu 133Cs
• liczb całkowitych duŜych co do modułu, z duŜą liczbą cyfr znaczących, np.
123456789123456;
objętość Ziemi
• typowych wartości rezystancji i pojemności stosowanych w układach
elektronicznych (występujących w typoszeregach dostępnych rezystorów
oraz kondensatorów).
17
1 terrabajt
1”=25,3995 mm
-273,15 ºC
365,2422 dnia
376,730313469585 Ω
6378,245 km
1 kWh = 36—105 J
1650763,73
91 9263 1770
1012 bajtów
1,08321—1012 km3
1 petabajt
1015 bajtów
1 eksabajt
1018 bajtów
1 zettabajt
1021 bajtów
liczba Avogadra
1 jottabajt
18
6,02214129(27)—1023 mol-1
1024 bajtów
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
3. Sprawdzić, czy moŜliwe jest wykrycie występowania błędu niedomiaru lub
nadmiaru.
4. Sprawdzić zakres reprezentacji liczb w kaŜdym z dostępnych formatów.
7.3.
Na podstawie wykonanych prób sformułować odpowiedzi na następujące pytania.
y1 = x 2 + 1 − 1 ,
• Dlaczego liczby zmiennoprzecinkowe nie są pamiętane dokładnie?
Dane są dwa wyraŜenia
y2 =
• Na której pozycji pojawiają się przekłamania w zapisie liczb?
• Co to jest precyzja zapisu P10?
• Jakimi kryteriami naleŜy się kierować przy wyborze sposobu reprezentacji
liczb zmiennoprzecinkowych?
Obliczenia przebiegu funkcji
x2
x2 + 1 + 1
.
(24)
Kolejne wartości zmiennej x, dla której są liczone wartości y1 oraz y2 tworzą ciąg
geometryczny
x = a− p ,
• Które reprezentacje liczb naleŜy wybierać?
(23)
(25)
przy czym w przygotowanym programie (rys. 5) moŜliwe jest ustawienie wartości
stałej a oraz zakresu zmian wykładnika potęgi
7.2. Określenie sposobu kodowania danych
1. Zaproponować testy, które umoŜliwią sprawdzenie wewnętrznej reprezentacji
liczb zmiennoprzecinkowych w stosowanych programach, np.:
• arkuszach kalkulacyjnych Microsoft Excel, Open Office Calc, itp.;
• kalkulatorach dostępnych w systemie operacyjnym;
• pakietach matematycznych Matlab, Octave, MathCad, itp.;
• pakiecie PSpice;
• innych programach, w których są przetwarzane liczby.
2. Zaproponować test, który pozwoli sprawdzić czy testowane programy
sygnalizują (jak działają) po wystąpieniu błędu nadmiaru oraz błędu NaN.
Na podstawie wykonanych prób:
• wskazać, który format/formaty są stosowane w ramach programu;
• określić precyzję zapisu liczb (P10) i zakres sygnalizacji błędów (niedomiar-,
niedomiar+, nadmiar-, nadmiar+, NaN);
• podać zasady, które umoŜliwią poprawne korzystanie z testowanych
programów.
19
p ∈ p1 , p2 .
(26)
1. Uruchom program ieee754_02.exe (szczegóły w rozdz. 8, rys. 5).
2. Wykonaj obliczenia dla wybranych wartości liczby a. Wyjaśnij przebieg
charakterystyk i omów uzyskane wyniki. Porównaj wyniki obliczeń
wykonywanych przy róŜnej reprezentacji przetwarzanych liczb (binary32,
binary64). WskaŜ, które wyraŜenie, y1 czy y2, jest liczone i prezentowane
jako „funkcja (a)” oraz „funkcja (b)”.
3. Wyjaśnij obserwowane rozbieŜności w obliczeniach. Oblicz liczbę
wykonywanych operacji dodawania/odejmowania oraz mnoŜenia/dzielenia.
4. Określ przyczyny powstawania błędów obliczeń w obu wyraŜeniach. WskaŜ,
które wyraŜenie jest liczone z większą precyzją.
5. Wyjaśnij techniki stosowane w celu ograniczenia powstawania tego typu
błędów.
6. Sprawdź jak podane funkcje będą liczone przy stosowaniu arkusza
kalkulacyjnego lub pakietu matematycznego.
7. Dla wybranych wartości sprawdź jak podane funkcje będą liczone w
kalkulatorze (sprzętowym, nie programowym dostępnym w komputerze).
20
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Rys. 5. Widok okna programu ieee754_02.exe.
Rys. 6. Widok okna programu ieee754_03.exe.
7.4. Operacje na liczbach małych i duŜych
W proponowanym przykładzie jest liczona wartość funkcji sinus, przy
zadanych wartościach amplitudy, składowej stałej, częstotliwości, fazy
początkowej. Wartości funkcji trygonometrycznej są liczone dwoma sposobami:
• dla zadanego kąta φ, przy uwzględnieniu zmian funkcji w pierwszym okresie,
u1 = A0 + A sin (2πft + ϕ ) ,
(27)
• korzystając z okresowości funkcji sinus, dla zadanego kąta fazowego φ w
wybranym N-tym okresie sinusa, ustawianym za pomocą pokrętła
u2 = A0 + A sin (2πf (t + NT ) + ϕ ) .
(28)
21
1. Uruchom program ieee754_03.exe (szczegóły w rozdz. 8).
2. Za pomocą suwaków ustaw amplitudę, częstotliwość i fazę początkową sinusa
(rys. 6). Składową stałą moŜna pozostawić bez zmian (0).
2. Porównaj wyniki otrzymane przy obliczaniu funkcji sinus w pierwszym okresie i
w kolejnych wybranych okresach. Zmiany wartości N wykonaj w zakresie
sięgającym co najmniej 1020. Zanotuj uzyskiwane wyniki (wystarczy ok. 10
punktów).
3. Wykonaj charakterystykę wartości funkcji sinus w zaleŜności od liczby N. Oś
wartości N wyskaluj uŜywając skali logarytmicznej.
4. Określ źródło powstawania błędów. Sformułuj zasady, które naleŜy uwzględnić
przy obliczaniu wartości funkcji okresowych.
5. Zadania z punktów 2 i 3 powtórz dla innego kąta fazowego. Czy otrzymana
charakterystyka ma inny przebieg?
22
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
w=0→
w =1→
w=2→
w=3→
7.5. Obliczenia wielomianów
Dane są trzy równowaŜne pod względem matematycznym formy zapisu
wielomianu zmiennej rzeczywistej x:
1
1
w=4→
w=5→
w=6→
w=7→
• metoda A: zapis z uŜyciem wzorów skróconego mnoŜenia (dwumianu
Newtona)
y A = (x + x p ) ,
1
1
1
1
1
1
N
w
5
7
M
3
4
6
6
15
1
4
10
20
35
M
1
3
10
21
M
1
2
15
35
M
1
5
1
6
21
M
1
7
M
1
M
O
(29)
Rys. 7. Trójkąt Pascala (wartości symbolu Newtona).
• metoda B: zapis z uwzględnieniem rozwinięcia dwumianu Newtona
yB =
w
 w  w −i i


=
x
x
a w− i x w− i =
∑
∑
p
 
i =0  i 
i =0
= aw x w + a w −1 x w−1 + a w − 2 x w − 2 + K + a1 x1 + a0 x 0 ,
w
(30)
• metoda C: zapis z rekurencyjnym wyłączeniem przed nawias kolejnych potęg
argumentu x
yC = (L((a w x + a w−1 )x + a w− 2 )x + L + a1 )x + a0 .
(31)
Współczynniki aw-i wyraŜają się wzorem
 w
aw −i =   ⋅ x ip .
i
(32)
Wartość xp w równaniach (29)-(32) odpowiada miejscu zerowemu wielomianu. Na
 w
w!
rys. 7 podano wartości symbolu Newtona   =
dla kolejnych potęg w.
i
(
i
!
w
− i )!
 
Przykład 1. Dla wielomianu rzędu 7 wskazane formy zapisu przyjmują postać
y A = ( x − 1) ,
7
Rys. 8. Widok okna programu ieee754_04.exe.
(33)
yB = x − 7 x + 21x − 35 x + 35 x − 21x + 7 x − 1 ,
(34)
yC = ((((((x − 7 )x + 21)x − 35)x + 35)x − 21)x + 7 )x − 1 .
(35)
7
6
5
4
3
2
1
1. Uruchom program ieee754_04.exe (szczegóły w rozdz. 8), w którym moŜna
obserwować przebiegi wielomianów liczonych metodami A oraz B (rys. 8).
23
24
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
2. Wykonaj obliczenia wielomianu wybranego rzędu (maksymalny rząd wynosi 8),
przy xp=1. Wpisz właściwe współczynniki. MoŜna zawęzić przedział obserwacji
(np. x1=0,9, x2=1,1) oraz ustawić krok zmiany wartości x (np. dx=1e-5).
3. Wyjaśnij przyczyny obserwowanych rozbieŜności. Oblicz liczbę operacji
dodawania/odejmowania oraz mnoŜenia/dzielenia. Określ szerokość
przedziału nieufności przy obliczeniach wykonywanych na liczbach
pojedynczej precyzji (binary32) oraz podwójnej precyzji (binary64).
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
2. Zgodnie z opisem operacji w skoroszycie (rys. 9):
• w komórkach od E3 do E7 oblicz składowe wektora w[i] = a[i]—b[i], wykonując
przy tym klasyczne operacje na komórkach;
• w komórce H11 oblicz sumę wyrazów wektora w, dodając kolejno wyrazy od
pierwszego do ostatniego;
• w komórce H12 oblicz sumę wyrazów wektora w, dodając kolejno wyrazy od
ostatniego do pierwszego;
• w komórce H13 oblicz sumę wyrazów wektora w wykorzystując przy tym
standardową funkcję obliczania sumy z wybranego zakresu komórek;
4. Z uŜyciem programu ieee754_04.exe lub innego, wykonaj obliczenia
zakładając, Ŝe xp≠1 (np. 1,1). W tym celu oblicz właściwe współczynniki
rozwinięcia zapisu.
5. Wykonaj testy przy zmianie rzędu wielomianu. W kaŜdym z przypadków określ
przedział nieufności rozwiązania przy stosowaniu formatu binary32 oraz
• w komórce H14 oblicz sumę pięciu wyrazów wektora w według samodzielnie
przyjętej kolejności losowej.
binary64.
6. Scharakteryzuj techniki, które pozwalają ograniczyć wartości obserwowanych
błędów.
7. Wykonaj obliczenia przyjętego wielomianu i wykonaj wykresy, korzystając z
arkusza kalkulacyjnego (np. Excel) lub pakietu matematycznego (np. Matlab).
W porównaniu wykresów uwzględnij równieŜ wariant C.
7.6. Obliczenia iloczynu skalarnego
Dane są dwa wektory a oraz b, złoŜone z pięciu liczb
a=[ 2,71828E+0 -3,14159E+0 1,41421E+0 5,77216E-1 3,01030E-1 ],
b=[ 1,48625E+3 8,78367E+5 -2,23749E+1 4,77371E+6 1,85049E-4 ].
(36)
(37)
Reprezentacja liczb w systemie dziesiętnym jest skończona, z dokładnością do
pięciu cyfr po przecinku. Przyjęte liczby mieszczą się w zakresie precyzji
przewidzianej zarówno dla standardu binary32 jak teŜ decimal64.
1. Otwórz przygotowany skoroszyt arkusza kalkulacyjnego, zapisany w pliku
ieee754_05.xls.
25
Rys. 9. Widok okna arkusza kalkulacyjnego do obliczania sumy wyrazów
z iloczynu skalarnego dwóch wektorów (plik ieee754_05.xls).
3. Podaj przyczyny obserwowanych efektów. Która wartość jest liczona
dokładniej i dlaczego? Co naleŜy robić, aby uniknąć tego typu błędów?
26
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
8. Informacje o dostępnych programach
9. Przykładowe zagadnienia na zaliczenie
Dostępne w trakcie ćwiczenia programy ieee754_01.exe, ieee754_02.exe,
ieee754_03.exe oraz ieee754_04.exe zostały przygotowane z uŜyciem języka G, w
ramach środowiska LabViewTM, firmy National Instruments. Programy w wersji
skompilowanej, wykonywalnej są dostępne m.in. na stronach internetowych
1.
2.
3.
4.
http://we.pb.edu.pl/~ketim/ketim-md/
www.we.pb.edu.pl/~butrylo
Ich uruchomienie jest moŜliwe na dowolnym komputerze, równieŜ bez
zainstalowanego pakietu NI LabViewTM. Niezbędnym warunkiem działania
programów jest zainstalowanie platformy uruchomieniowej NI LabViewTM, tzw.
LabVIEW Run-Time Engine 2011. Oryginalny pakiet instalacyjny
(LVRTE2011f3std.exe) jest dostępny legalnie, bezpłatnie na stronach producenta
oprogramowania, m.in.
http://joule.ni.com/nidu/cds/view/p/id/2534/lang/en
Przed uzyskaniem dostępu do pakietu instalacyjnego wymagane jest podanie
danych w celach marketingowych.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
27
28
Scharakteryzuj formaty zapisu zmiennoprzecinkowego dostępne w ramach
standardu IEEE 754-2008.
Wyjaśnij sposób zapisu liczb w formacie BFP w standardzie IEEE 754-2008.
Wyjaśnij sposób zapisu liczb w formacie DFP w standardzie IEEE 754-2008.
Podaj jakie są standardowe formaty reprezentacji zmiennoprzecinkowej oraz
inne, dopuszczone w ramach standardu IEEE 754-2008. Podaj główne cechy
tych formatów, które mają znaczenie przy programowaniu i wykonywaniu
obliczeń.
Wyjaśnij, od czego zaleŜy zakres reprezentowanych liczb a od czego ich
precyzja reprezentacji.
Wyjaśnij jak rozumiesz termin liczba maszynowa. Jaka jest róŜnica między
liczbą maszynową a liczbą rzeczywistą.
Co to jest precyzja zapisu P10?
Jakie są krytyczne i niekrytyczne błędy w ramach standardu IEEE 754-2008.
Czy kaŜdą liczbę z zakresu przewidzianego w standardzie IEEE 754-2008
moŜna przedstawić w zapisie zmiennoprzecinkowym. Odpowiedź uzasadnij.
Wyjaśnij na czym polega kumulacja lub propagacja błędów w obliczeniach
zmiennoprzecinkowych.
W oparciu o wzory wyjaśnij, co się dzieje z błędem względnym wyniku przy
obliczaniu sumy dwóch wyrazów.
W oparciu o wzory wyjaśnij, co się dzieje z błędem względnym wyniku przy
obliczaniu iloczynu dwóch wyrazów.
Omów metody ograniczania błędów numerycznych.
Dlaczego binarny zapis zmiennoprzecinkowy (BFP) jest powszechnie
wykorzystywany w programach, zaś dziesiętny zapis zmiennoprzecinkowy
(DFP) w niewielkim (znikomym) stopniu?
Na czym polega zaokrąglanie liczby w zapisie zmiennoprzecinkowym a na
czym obcięcie.
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
Standard IEEE 754, przetwarzanie liczb zmiennoprzecinkowych
10. Literatura
11. Wymagania BHP
[1]
Warunkiem przystąpienia do praktycznej realizacji ćwiczenia jest zapoznanie
się z instrukcją BHP i instrukcją przeciw poŜarową oraz przestrzeganie zasad w
nich zawartych.
W trakcie zajęć laboratoryjnych naleŜy przestrzegać następujących zasad.
• Sprawdzić, czy urządzenia dostępne na stanowisku laboratoryjnym są w stanie
kompletnym, nie wskazującym na fizyczne uszkodzenie.
• JeŜeli istnieje taka moŜliwość, naleŜy dostosować warunki stanowiska do
własnych potrzeb, ze względu na ergonomię. Monitor komputera ustawić w
sposób zapewniający stałą i wygodną obserwację dla wszystkich członków
zespołu.
• Sprawdzić prawidłowość połączeń urządzeń.
• Załączenie komputera moŜe nastąpić po wyraŜeniu zgody przez
prowadzącego.
• W trakcie pracy z komputerem zabronione jest spoŜywanie posiłków i picie
napojów.
• W przypadku zakończenia pracy naleŜy zakończyć sesję przez wydanie
polecenia wylogowania. Zamknięcie systemu operacyjnego moŜe się odbywać
tylko na wyraźne polecenie prowadzącego.
• Zabronione jest dokonywanie jakichkolwiek przełączeń oraz wymiana
elementów składowych stanowiska.
• Zabroniona jest zmiana konfiguracji komputera, w tym systemu operacyjnego i
programów uŜytkowych, która nie wynika z programu zajęć i nie jest
wykonywana w porozumieniu z prowadzącym zajęcia.
• W przypadku zaniku napięcia zasilającego naleŜy niezwłocznie wyłączyć
wszystkie urządzenia.
• Stwierdzone wszelkie braki w wyposaŜeniu stanowiska oraz nieprawidłowości
w funkcjonowaniu sprzętu naleŜy przekazywać prowadzącemu zajęcia.
• Zabrania się samodzielnego włączania, manipulowania i korzystania z
urządzeń nie naleŜących do danego ćwiczenia.
• W przypadku wystąpienia poraŜenia prądem elektrycznym naleŜy niezwłocznie
wyłączyć zasilanie stanowiska. Przed odłączeniem napięcia nie dotykać
poraŜonego.
[2]
[3]
[4]
[5]
[6]
[7]
[8]
J. M. Jankowscy: Przegląd metod i algorytmów numerycznych. WNT,
Warszawa, 2009.
D. Kincaid, W. Cheney: Analiza numeryczna. PWN, Warszawa, 2008.
Z. Fortuna, B. Macukow, J. Wasowski: Metody numeryczne. WNT,
Warszawa, 2006.
S. Gryś: Arytmetyka komputerów. Wydawnictwa Naukowe PWN, Warszawa,
2007.
J. Ogrodzki: Wstęp do systemów komputerowych. Oficyna Wydawnicza
Politechniki Warszawskiej, Warszawa, 2005.
B. Pochopień: Arytmetyka w systemach cyfrowych. Akademicka Oficyna
Wydawnicza Exit, Warszawa, 2004.
IEEE 754-2008 - Standard for Floating-Point Arithmetic. DOI
10.1109/IEEESTD.2008.4610935, 2008.
IEEE 754-1985 - Standard for Binary Floating-Point Arithmetic. DOI
10.1109/IEEESTD.1985.82928, 1985.
29
30
Download