init mp_free_mem mp_grow

5 Tabel 2 Return value pada fungsi Return Value Keterangan MP_OKAY 0 Jika fungsi berhasil MP_MEM -2 Jika fungsi melebihi memori MP_VAL -3 Jika nilai input tidak valid Librari dalam penelitian ini mempunyai beberapa fungsi yang menjadi dasar dalam proses komputasi. Fungsi-fungsi tersebut yaitu:

a. init

Fungsi init digunakan untuk melakukan inisialisasi terhadap bilangan mp_int. Proses insialisasi ini akan memberikan nilai default pada variabel-variabel yang ada pada tipe data mp_int. Algoritme fungsi init adalah sebagai berikut: Input : mp_int a Output : alokasi memori a sebanyak 10 digit array 1. Alokasi memori untuk 10 digit 2. Jika gagal , return MP_MEM 3. For n from 0 to 9 do a n 4. a.sign MP_ZPOS 5. a.used 6. a.alloc 10 7. Return MP_OKAY Algoritme fungsi init di atas menunjukkan bahwa fungsi tersebut akan mengalokasikan memori sebanyak 10 digit array atau setara dengan bilangan 320 bit. Jika terjadi kegagalan, maka fungsi tersebut akan mengembalikan nilai MP_MEM. Fungsi ini memberikan nilai default pada variabel-varibel yang ada dengan a.sign=MP_ZPOS, a.used=0, a.alloc=10, dan a n = 0, untuk n=0,1,...,9.

b. mp_free_mem

Fungsi mp_free_mem merupakan kebalikan dari fungsi init. Fungsi ini digunakan untuk mengembalikan memori yang telah dialokasikan ke kondisi semula sehingga memori tersebut dapat digunakan kembali. Algoritme fungsi mp_free_mem adalah sebagai berikut: Input : mp_int a Output : memori a didealokasi 1. For n from 0 to a.used-1 do a n 2. Free alokasi memori pada a 3. a.used 4. a.alloc 5 a. sign MP_ZPOS 6. Return MP_OKAY Algoritme fungsi mp_free_mem di atas menunjukkan bahwa fungsi tersebut akan mengembalikan memori yang telah terpakai. Selanjutnya fungsi tersebut akan memberikan nilai pada variabel-varibel yang ada dengan a.sign = MP_ZPOS, a.used = 0, dan a.alloc =0.

c. mp_grow

Fungsi mp_grow digunakan untuk menambah digit array ketika memori yang akan dipakai melebihi memori yang telah dialokasikan alloc used. Algoritme fungsi mp_grow adalah sebagai berikut: Input : mp_int a dan int b Output : alokasi memori a ditambahkan sampai b digit array 1. If a.alloc b Realokasikan digit array a menjadi b For n from a.used to b do a n a.alloc b 2. Return MP_OKAY Algoritme fungsi mp_grow di atas menunjukkan bahwa fungsi tersebut akan memeriksa banyaknya memori yang dialokasikan terlebih dahulu. Jika banyaknya memori yang ingin ditambahkan lebih besar dari memori yang telah dialokasikan, maka fungsi tersebut akan mengalokasikan kembali memori sebanyak memori yang ingin ditambahkan.

d. mp_clear_zero Fungsi mp_clear_zero digunakan untuk