Adam Korzeniewski p Katedra Systemów Multimedialnych

Podobne dokumenty
Adam Korzeniewski p Katedra Systemów Multimedialnych

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Podstawy Informatyki

Arytmetyka binarna - wykład 6

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Arytmetyka stało i zmiennoprzecinkowa

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

LICZBY ZMIENNOPRZECINKOWE

Pracownia Komputerowa wykład VI

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Naturalny kod binarny (NKB)

Podstawy Informatyki

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

SYSTEMY LICZBOWE 275,538 =

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Pracownia Komputerowa wykład V

Zapis liczb binarnych ze znakiem

Technologie Informacyjne

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Kod U2 Opracował: Andrzej Nowak

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

LICZBY ZMIENNOPRZECINKOWE

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Teoretyczne Podstawy Informatyki

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

1.1. Pozycyjne systemy liczbowe

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Kodowanie informacji. Kody liczbowe

Kodowanie liczb całkowitych w systemach komputerowych

Technologie Informacyjne Wykład 4

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Operacje arytmetyczne

Architektura komputerów

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Arytmetyka stałopozycyjna

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Techniki multimedialne

Pracownia Komputerowa wyk ad VI

Metoda znak-moduł (ZM)

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Systemy zapisu liczb.

Teoria przetwarzania A/C i C/A.

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Liczby zmiennoprzecinkowe i błędy

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Podstawy Informatyki dla Nauczyciela

Architektura komputerów

Stan wysoki (H) i stan niski (L)

Pracownia Komputerowa wykład IV

Dokładność obliczeń numerycznych

Arytmetyka liczb binarnych

Wprowadzenie do informatyki - ć wiczenia

Systemy liczbowe używane w technice komputerowej

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p.

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

Metody numeryczne II. Reprezentacja liczb

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

1259 (10) = 1 * * * * 100 = 1 * * * *1

Pozycyjny system liczbowy

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Pracownia Komputerowa wyk ad V

Systemy liczbowe. 1. System liczbowy dziesiętny

Architektura komputerów

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wstęp do informatyki- wykład 1 Systemy liczbowe

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Kodowanie liczb. Reprezentacja liczb całkowitych. Standard IEEE 754. dr inż. Jarosław Forenc

ZADANIE 1. Rozwiązanie:

Cyfrowy zapis informacji

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

O systemach liczbowych

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

L6.1 Systemy liczenia stosowane w informatyce

Pracownia Komputerowa wyk ad IV

Transkrypt:

Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych

Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory sygnałowe). Komputery wykonują działania na liczbach zapisanych za pomocą skończonej liczby bitów (na ogół jest to 6, 24, 32 lub 64 bity). Dlatego sygnały dyskretne są kwantowane przed wprowadzeniem do pamięci komputera.

Najlepiej, gdy przetwornik analogowo-cyfrowy ma taką samą liczbę bitów jak komputer, w przeciwnym razie moce szumów kwantowania przetwornika i komputera zsumują się. Podobnie jak wartości próbek sygnału, zostaną skwantowane inne dane wykorzystywane przy cyfrowym przetwarzaniu sygnałów, jak np. współczynniki filtrów cyfrowych.

Skwantowana wartość liczbowa może być zakodowana na wiele różnych sposobów. Podstawowe metody kodowania dwójkowego zestawiono w tabeli na kolejnym slajdzie, przy czym naturalny kod dwójkowy służy do kodowania liczb dziesiętnych bez znaku, a pozostałe kody pozwalają kodować liczby dziesiętne ze znakiem.

Liczba dziesiętna bez znaku L 0 Naturalny kod dwójkowy L b 2 Kod znak-moduł b2bb0 2 ZM 2 2 2 b 2 b0 L b b b b 2 2 b b 2 0 ZM 0 Kod z uzupełnieniem do L Kod z uzupełnieniem do 2 U LU 2 b b b b 2 b 2 2 0 2 0 U 2 b b 2 b 2 b b b 2 0 2 0 U 2 2 b Liczba dziesiętna ze zna-kiem L Z0-4 -3-2 - 0 2 3 4 5 6 7 - - - - 000 00 00 0 00 0 0-0 0 000 lub 00 00 00 0-00 0 0 000 lub 00 00 0 00 0 0 000 00 00 0-4 -3-2 - 0 2 3

Najprostszym kodem jest naturalny kod dwójkowy (w tym kodzie zapisuje się liczby naturalne, kod nie uwzględnia znaku liczby). W tym kodzie operacja dodawania pojedynczych bitów daje następujące wyniki: 0+0=0, 0+=, +=0 (tutaj występuje jedynka przeniesienia). Stąd wynika zasada dodawania liczb z większą liczbą bitów. Na przykład dodawaniu dziesiętnemu odpowiada pokazane obok dodawanie dwójkowe (na samej górze zapisano jedynki przeniesienia) 0 0 0 0 0 0 0

Z kolei wyniki mnożenia pojedynczych bitów są następujące: 0*0=0, 0*=0, *=, a dla liczb z większą liczbą bitów mamy przykład (odpowiednik mnożenia dziesiętnego ). 0 Bardzo łatwo można 0 wykonać mnożenie razy 2, gdyż wystarczy przesunąć wszystkie bity 0 o jedną pozycję w lewo. Podobnie łatwe jest dzielenie przez 2, 0 0 0 gdyż wystarczy przesunąć wszystkie 0 bity o jedną pozycję w prawo. 0

Są znane reguły wykonywania działań na liczbach zapisanych w innych kodach niż kod naturalny. Popularnym kodem jest kod z uzupełnieniem do 2 (kod U2). Należy on do kodów pozwalających wykonywać operacje na liczbach z uwzględnieniem ich znaku. Pierwszy bit (MSB) jest bitem znaku liczby (0 liczba dodatnia, liczba ujemna).

Bardziej niż działaniami na liczbach całkowitych jesteśmy zainteresowani działaniami na liczbach ułamkowych. W tym przypadku jest stosowana postać stałoprzecinkowa lub postać zmiennoprzecinkowa liczby. W postaci stałoprzecinkowej do zapisu liczby o postaci M.F przeznacza się jeden bit s= na zapis znaku liczby, m bitów na zapis części całkowitej M i f bitów na zapis części ułamkowej liczby F, czyli długość słowa maszynowego to w s m f

Przykładowo w kodzie z uzupełnieniem do dwóch (U2) zapis liczb jest następujący 00 000 4 3 2 0 U 2 2 0 2 2 0 2 2 5 4 2 0 U 2 0 2 2 2 2 2 0 2 3.U 2 2 2 2 2 2 0. 25 0 3 0.0U 2 0 2 2 2 2. 625 2 W tej postaci można zapisać liczby w zakresie od do m f f 2 2 z precyzją co 2. Jak widać, nie jest możliwe dokładne zapisanie liczby niewymiernej, a i wśród liczb wymiernych dokładną reprezentację ma tylko ich skończona f ilość (te, które są podzielne przez ). 2 m

a) w=+m+f długość słowa maszynowego MSB b w s - bit znaku bw2 b w 3 m 2 L m część całkowita liczby L 0 2 0 2 L L b 2 LSB b b 0 Kropka f część ułamkowa liczby binarna f Precyzja 2 Oś m f 2 2 liczbowa Przekroczenie ujemne Liczby ujemne Liczby dodatnie Przekroczenie dodatnie b) w=+e+f długość słowa maszynowego bw s - bit b w2 L e wykładnik MSB 0 L 2 2 2 2 2 L L b 2 f część ułamkowa LSB b b 0

E W postaci zmiennoprzecinkowej do zapisu liczby o postaci. F 2 przeznacza się jeden bit s= na zapis znaku liczby, e bitów na zapis wykładnika E i f bitów na zapis części ułamkowej F (nazywanej też mantysą), czyli długość słowa maszynowego, to w = s + e + f. W standardzie IEEE 754-985 przy 32-bitowym zapisie liczby rozdział bitów jest następujący w = + 8 + 23, a przy zapisie 64-bitowym jest to w = + + 52. Nie przeznacza się bitu na zapis znaku wykładnika, ale przesuwa się wartości wykładnika w dół o wartość bias 2 e. Na przykład przy e=8, liczby od 0 do 255 e po przesunięciu o 2 27 dają wartości wykładnika zmieniające się w zakresie od 27 do 28. I tak zapisowi binarnemu 00000 0000000000000000000 odpowiada liczba dziesiętna 0 2 5 2 6 8 2 2 2 27 92 2 2 2 2 2.7695325 2 3.5735 0 28

W standardzie IEEE 754-985 rezygnuje się z wartości wykładnika 27 (E same zera) i 28 (E same jedynki), aby umożliwić zapisanie wartości zero i nieskończoność. Stworzono też możliwość zapisania tzw. wartości zdenormalizowanych i NaN (Not a Number), tak jak to pokazano w poniższej tabeli. W tabeli tej zamieszczono tylko wartości dodatnie (bit znaku 0), ale każda z nich ma swój odpowiednik ujemny (bit znaku ). Na przykład zero ma dwie reprezentacje: +0 i 0. Wykładnik (E) Ułamek (F) Wartości Dla bity Dla bity 00...00 00...00 +0 00...0 Zdenormalizowane 00...00 do... bias 0. F 2 00...0 do...0 00...00 do... Normalizowane Ebias. F 2... 00...00 +infinity w 32 w 64 2 49 do 26 23 2 2 2 26 do 2 2 23 2 27 2 074 do 022 52 2 2 2 022 do 2 2 52 2 023... 00...0 do 0... 0 00 do Signalling Not a Number SNaN Quiet Not a Number QNaN

m 2 0 binarna Precyzja f 2 m f 2 2 Oś liczbowa Przekroczenie ujemne Liczby ujemne Liczby dodatnie Przekroczenie dodatnie b) w=+e+f długość słowa maszynowego bw s - bit znaku b w2 Przekroczenie ujemne L e wykładnik f 2 bias e 2 2 2 Liczby ujemne MSB 0 L 2 2 2 2 Niedobór ujemny 0 2 L Niedobór dodatni L b 2 f część ułamkowa Liczby dodatnie 2 2 LSB b b 0 f bias f bias f 2 bias 2 2 2 e Oś liczbowa Przekroczenie dodatnie

Procesory stałoprzecinkowe (fixed point): operują na liczbach stałoprzecinkowych ( całkowitych ), np. 6536 nie rozumieją liczb ułamkowych, np. 0,56 Procesory zmiennoprzecinkowe: potrafią działać na liczbach ułamkowych specjalny procesor i zestaw instrukcji wolniejsze, droższe, większe zużycie energii

Procesor TMS320C5535 używany w projekcie ZPS jest stałoprzecinkowy. Typy liczbowe: 6-bitowy (int, short) 32-bitowy (long) + 40-bitowy (long long) Każdy typ n-bitowy występuje w wersji: ze znakiem (signed, domyślny): -2 (n-) do 2 (n-) - bez znaku (unsigned): 0 do 2 n -

Czy to znaczy, że nie da się zapisać liczb ułamkowych, np. 0,53? 6 bitów: mamy do dyspozycji liczby od -2 5 do 2 5 -, czyli od -32768 do 32767 Załóżmy, że zapisujemy liczby z zakr. [-, ) Przeskalujmy: * 32768 = 32767 - - * 32768 = -32768 0,53 0,53 * 32768 = 7367

Znaczenie 6 bitów: znak, 2 -, 2-2, 2-3, 2-4,, 2-4, 2-5 Taki zapis nazywa się Q5: bit znaku, 5 bitów liczby ułamkowej Rozdzielczość: 2-5 = 0,0000305 Nie da się dokładnie zapisać liczby. UWAGA: ta konwersja zachodzi po stronie programisty. Procesor nadal widzi liczbę 7367, nie 0,53!

W formacie tym jeden bit przeznacza się na zapis znaku, zero bitów na zapis części całkowitej i 5 bitów na część ułamkową w = s + m + f = + 0 + 5 = 6. Na przykład liczba zapisana w kodzie U2 0000000000 ma następującą wartość w zapisie dziesiętnym 2 2 2 3 2 4 2 5 2 7 0.5234375

Sprawdźmy czy to działa: 0,53+0,26 0.53 * 32768 = 7367 0.26 * 32768 = 859 7367 + 859 = 25886 Powrót do liczby dziesiętnej: 25886 / 32768 = 0,789978 0.79

A co jeśli mamy np. liczby z zakresu [-2; 2)? Skalujemy tak samo: 2 32768, czyli 32768 / 2 = 6384 (zapis Q4 lub Q.4) Obliczamy 0,58,34: 0,58 * 6384 = 9502,34 * 6384 = 2954 9502 2954 = -2452-2452 / 6384-0,76

Ogólnie: zapis liczb z przedziału [-2 n ; 2 n ), czyli zapis Qm.n: Konwersja z dziesiętnej na Qm.n: q = d * 2 n Konwersja z Qm.n na dziesiętną: d = q / 2 n

Mnożenie dwóch liczb Q5 przez siebie daje w wyniku liczbę Q(5+5), czyli Q30. Do zapisania wyniku potrzebujemy 32 bity. Mnożenie przez potęgi dwójki 2 n jest bardzo proste: wykonujemy przesunięcie bitowe o n miejsc w lewo (<< n), np.: x * 6 = x * 2 4 = x << 4 np. 5 * 6 = 000000 2 << 4 = 000000 2 = 80

Przykład mnożenia: 0,7 * 0,8 0,7 * 32768 = 22937 0,8 * 32768 = 2624 22937 * 2624 = 60 270 58 (32 bity!) to jest liczba Q30, więc przeliczenie na dziesiętną: 6027058 / 2 30 = 0,55976 0,56

Wynik mnożenia liczb Q5 to liczba Q30. Co zrobić jeżeli chcemy mieć wynik Q5? Musimy obciąć 5 najmłodzych bitów części ułamkowej. Robimy to przesuwając bity o 5 miejsc w prawo (>> 5). 6027058 >> 5 = 8349 (Q5) 8349 / 32768 0,56 (dziesiętna) Odpowiada to dzieleniu przez 2 5

Należy tego unikać, jeśli to tylko możliwe - dzielenie jest baaaaaardzo wolne. Szybkie dzielenie tylko przez 2 n (>> n). Można dzielić a/b (Q5) jeżeli a < b. Dzielenie liczb Q5 da wynik Q(5-5) = Q0 (!) Musimy zamienić licznik a na Q30, wtedy dostaniemy wynik Q(30-5) = Q5. 0,3 / 0,5 (0,3 * 2 30 ) / (0,5 * 2 5 ) = = 32222547 / 6384 = 9660 0,6 (dziesiętna)

Format Qm.n pozwala kodować liczby ułamkowe jako stałoprzecinkowe. Konwersja na Q i z Q jest robiona przez programistę. Procesor nadal wykonuje operacje na liczbach stałoprzecinkowych. Działania podatne na wystąpienie przepełnienia zakresu (overflow) oraz niedopełnienia (underflow wyzerowanie).

Niezależnie od przyjętej postaci zapisu liczby, komputer jest w stanie zapisywać dokładnie liczby tylko ze skończonego zbioru skwantowanych liczb wymiernych. Komputery nie potrafią zapisać dokładnie liczby niewymiernej (np. w komputerze 32-bitowym liczba pi, to 355/3 z dokładnością 0-6 ), ani liczby wymiernej, która nie należy do tego zbioru. Takie liczby są zaokrąglane do najbliższej liczby mającej swoją reprezentację w komputerze. To spowoduje, że np. współczynniki zaprojektowanego filtru cyfrowego nigdy nie będą dokładnie reprezentowane w komputerze i w konsekwencji charakterystyki zrealizowanego filtru będą różniły się od charakterystyk idealnych.

Analiza błędów zaokrągleń jest trudna, gdyż błędy te zależą dodatkowo od algorytmu, według którego komputer wykonuje obliczenia. Nawet w najprostszych algorytmach przy pewnych wartościach parametrów obserwuje się efekt oscylacji błędu ze stałą amplitudą lub efekt kumulacji błędu i jego narastanie do nieskończoności. Na przykład przy całkowaniu numerycznym równań różniczkowych niedopuszczalne jest stosowanie algorytmów niestabilnych numerycznie, wzmacniających błędy zaokrągleń; powodujących, że bardzo szybko zakumulowane błędy stają się większe od poszukiwanego rozwiązania.

Innym źródłem błędów jest przekroczenie dopuszczalnego zakresu zmienności liczby (przekroczenie zakresu dynamicznego). Przekroczenie takie może zajść przy dodawaniu, a zwłaszcza mnożeniu liczb. Przy mnożeniu dwóch liczb iloczyn może wymagać do zapisu dwukrotnie większej liczby bitów niż każdy z czynników. Dlatego w komputerach akumulatory, do których wpisuje się wyniki działań, są dłuższe niż rejestry, z których pobiera się liczby do obliczeń. Jeżeli do akumulatora zostanie wpisana wartość końcowa obliczeń, to będzie ona znana z dużą dokładnością (podwójną precyzją, gdy akumulator jest dwukrotnie dłuższy od rejestrów). Jeśli jednak jest to wynik pośredni obliczeń i przekracza długość rejestru, to musi być obcięty przed umieszczeniem w rejestrze i zachodzi błąd przekroczenia.

Rejestr A Rejestr B Akumulator Np. 8 bitów Np. 8 bitów Np. 6 bitów Szyny danych i rozkazów Hardwarowy mnożnik Jednostka dodająca ALU jednostka arytmetycznologiczna

Z powodu błędów zaokrągleń i przekroczeń dokładność obliczeń wykonywanych na tym samym komputerze będzie zależała od kolejności wykonania przemiennych operacji. Także dwa różnego typu komputery o tej samej długości słowa maszynowego będą dawały nieco różniące się wyniki nawet przy tej samej kolejności wykonywania operacji. W większości przypadków komputer czy procesor sygnałowy z 32 bitowym zapisem zmiennoprzecinkowym liczby zapewni dostateczną dokładność obliczeń. W wielu typach komputerów istnieje możliwość poprawienia dokładności obliczeń (za cenę zwiększenia czasu obliczeń) poprzez przejście na zapis liczb z podwójną precyzją 2 * 32 = 64 bity. W przypadku procesorów sygnałowych procesory zmiennoprzecinkowe zapewniają większą precyzję i zakres dynamiczny są jednak mniej ekonomiczne niż procesory stałoprzecinkowe, gdyż mają większy pobór mocy, większe rozmiary, wyższą cenę.

Wykonując obliczenia komputerowo zawsze warto zadbać o to, aby już począwszy od danych wejściowych posługiwać się w obliczeniach wielkościami unormowanymi, przyjmującymi wartości zbliżone do jedności. W przeciwnym razie od samego początku komputer będzie wykonywał obliczenia na wartościach liczbowych bardzo różniących się modułami i błędy obliczeń będą większe.