Programowanie w systemie UNIX/MPC: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m lit |
int. |
||
Linia 1:
Gnu Mpc<ref>[http://multiprecision.org/ GNU Mpc ]</ref> jest to biblioteka [[C]] służąca do operacji arytmetycznych na liczbach zespolonych z dowolną precyzją (
==Zależności / wymagania ==
* wersja języka C
* [[Programowanie_w_systemie_UNIX/GMP|gmp]] ≥ 4.3.2,
* biblioteka [[Programowanie_w_systemie_UNIX/MPFR|MPFR]], wersja mpfr ≥ 2.4.2
Linia 17:
lub
./configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.2 --with-mpfr=/usr/local/mpfr-3.0.1
Linia 24:
Wynik
<pre>
Linia 43:
===Synnaptic===
Za pomocą Menadżera Pakietów Synaptic
===git===
Z użyciem anonimowego dostępu do git
git clone https://gforge.inria.fr/git/mpc/mpc.git
Linia 61:
make check
wynik
<pre>
Linia 150:
==Zaokrąglenie==
Sposoby zaokrąglanie (
MPC_RNDxy
Litery x i y oznaczają sposób dla części rzeczywistej (
Są następujące metody
* N oznacza do najbliższej liczby (to nearest)
Linia 162:
zmienna określająca jet typu
mpc_rnd_t
==Format liczb==
* liczba zmiennoprzecinkowa (
* para liczb zmiennoprzecinkowych
** oddzielonych spacją
** otoczona nawiasami
Linia 174:
▲Przedrostki określające podstawę formatu liczb :
* '
▲* '0x' dla liczb heksadecymalnych ( ang. hexadecimal numbers)
* bez przedrostka dla liczb dziesiętnych
Linia 184 ⟶ 183:
The real and imaginary part may then be written in different bases. For instance, "(1.024e+3 +2.05e+3)" and "(0b1p+10 +0x802)" are valid strings for base=0 and represent the same value."
Przykłady poprawnych liczb dziesiętnych (
3.1415926
Linia 193 ⟶ 192:
binarnych
0b101
Linia 202 ⟶ 201:
===mpc_t===
Definicja
typedef struct {
Linia 210 ⟶ 209:
typedef __mpc_struct mpc_t[1];
Każda część (
Dostęp do części
mpc_realref (z)
mpc_imagref (z)
Linia 225 ⟶ 224:
mpc_abs: sqrt(x^2 + y^2)
===Zwracana wartość
inex =
"Most MPC functions have a return value of type int, which is used to indicate the position of the rounded real and imaginary parts with respect to the exact (infinite precision) values. If this integer is k, the macros MPC_INEX_RE(k) and MPC_INEX_IM(k) give 0 if the corresponding rounded value is exact, a negative value if the rounded value is less than the exact one, and a positive value if it is greater than the exact one. Similarly, functions computing a result of type mpfr_t return an integer that is 0, positive or negative depending on whether the rounded value is the same, larger or smaller then the exact result"
Linia 233 ⟶ 232:
==Jak używać w c ?==
Etapy użycia
* deklaracja zmiennej
* inicjalizacja
* przypisanie (
* obliczenia (
* zwolnienie pamięci (ang. freeing)
Linia 254 ⟶ 253:
Najprostszy przykład
<source lang=c>
Linia 271 ⟶ 270:
</source>
Kompilacja
gcc ... -lmpc -lmpfr -lgmp ...
Linia 314 ⟶ 313:
===asin(2i)===
Funkcja asin oblicza arcsine z liczby całkowitej
<source lang = c>
Linia 361 ⟶ 360:
</source>
Wynik
|