#include <gmp.h> #define PRIZgmp "Zd" #define PRIFgmp "Ff" // // ひたすら足し算 // void gmp_fibonacci_z(unsigned int n_, mpz_t y_) { switch (n_) { case 0: mpz_init_set_ui(y_, 0); return; case 1: mpz_init_set_ui(y_, 1); return; default: { mpz_t l; mpz_t r; mpz_init_set_ui(l, 0); mpz_init_set_ui(r, 1); mpz_set_ui(y_, 1); for (unsigned int i = 1; i < n_; ++i) { mpz_add(y_, y_, l); mpz_set(l, r); mpz_set(r, y_); } mpz_clear(l); mpz_clear(r); return; } } } // 再帰階乗計算 // https://w...content-available-to-author-only...i.edu/~eppstein/161/960109.html // This is a recursive algorithm, so as usual we get a recurrence relation defining time, // just by writing down the time spent in a call to matpow (O(1)) plus the time in each recursive call // (only one recursive call, with argument n/2). So the recurrence is // // time(n) = O(1) + time(n / 2) typedef mpz_t Muint64_2x2_t[2][2]; typedef struct tag_Mbuf_t { Muint64_2x2_t M; Muint64_2x2_t IM; Muint64_2x2_t TM; } t_Mbuf_t; static inline void matpow(t_Mbuf_t* pt_, unsigned int n_) { if (n_ > 1) { matpow(pt_, n_ >> 1); // M = M * M mpz_mul (pt_->TM[0][0], pt_->M[0][0], pt_->M[0][0]); mpz_addmul(pt_->TM[0][0], pt_->M[0][1], pt_->M[1][0]); mpz_mul (pt_->TM[0][1], pt_->M[0][0], pt_->M[0][1]); mpz_addmul(pt_->TM[0][1], pt_->M[0][1], pt_->M[1][1]); mpz_mul (pt_->TM[1][0], pt_->M[1][0], pt_->M[0][0]); mpz_addmul(pt_->TM[1][0], pt_->M[1][1], pt_->M[1][0]); mpz_mul (pt_->TM[1][1], pt_->M[1][0], pt_->M[0][1]); mpz_addmul(pt_->TM[1][1], pt_->M[1][1], pt_->M[1][1]); mpz_set(pt_->M[0][0], pt_->TM[0][0]); mpz_set(pt_->M[0][1], pt_->TM[0][1]); mpz_set(pt_->M[1][0], pt_->TM[1][0]); mpz_set(pt_->M[1][1], pt_->TM[1][1]); } if (n_ & 1) { // M = M * IM mpz_mul (pt_->TM[0][0], pt_->M[0][0], pt_->IM[0][0]); mpz_addmul(pt_->TM[0][0], pt_->M[0][1], pt_->IM[1][0]); mpz_mul (pt_->TM[0][1], pt_->M[0][0], pt_->IM[0][1]); mpz_addmul(pt_->TM[0][1], pt_->M[0][1], pt_->IM[1][1]); mpz_mul (pt_->TM[1][0], pt_->M[1][0], pt_->IM[0][0]); mpz_addmul(pt_->TM[1][0], pt_->M[1][1], pt_->IM[1][0]); mpz_mul (pt_->TM[1][1], pt_->M[1][0], pt_->IM[0][1]); mpz_addmul(pt_->TM[1][1], pt_->M[1][1], pt_->IM[1][1]); mpz_set(pt_->M[0][0], pt_->TM[0][0]); mpz_set(pt_->M[0][1], pt_->TM[0][1]); mpz_set(pt_->M[1][0], pt_->TM[1][0]); mpz_set(pt_->M[1][1], pt_->TM[1][1]); } } void gmp_fibonacci_m(unsigned int n_, mpz_t y_) { switch (n_) { case 0: mpz_init_set_ui(y_, 0); return; case 1: mpz_init_set_ui(y_, 1); return; default: { t_Mbuf_t t; mpz_init_set_ui(t.M[0][0], 1); mpz_init_set_ui(t.M[0][1], 0); mpz_init_set_ui(t.M[1][0], 0); mpz_init_set_ui(t.M[1][1], 1); mpz_init_set_ui(t.IM[0][0], 1); mpz_init_set_ui(t.IM[0][1], 1); mpz_init_set_ui(t.IM[1][0], 1); mpz_init_set_ui(t.IM[1][1], 0); mpz_init(t.TM[0][0]); mpz_init(t.TM[0][1]); mpz_init(t.TM[1][0]); mpz_init(t.TM[1][1]); matpow(&t, n_ - 1); mpz_set(y_, t.M[0][0]); mpz_clear(t.M[0][0]); mpz_clear(t.M[0][1]); mpz_clear(t.M[1][0]); mpz_clear(t.M[1][1]); mpz_clear(t.IM[0][0]); mpz_clear(t.IM[0][1]); mpz_clear(t.IM[1][0]); mpz_clear(t.IM[1][1]); mpz_clear(t.TM[0][0]); mpz_clear(t.TM[0][1]); mpz_clear(t.TM[1][0]); mpz_clear(t.TM[1][1]); return; } } } #include <time.h> #include <sys/time.h> inline static double baka_sec_count(void) { struct timeval tv; gettimeofday(&tv, NULL); return (double)tv.tv_sec + ((double)tv.tv_usec / 1000000.0); } int main(int argc, char* argv[]) { // mpz_t zy; mpz_t my; mpz_t gy; unsigned int const n = 10000000; double s; double e; clock_t us; clock_t ue; // mpz_init(zy); // s = baka_sec_count(); // us = clock(); // gmp_fibonacci_z(n, zy); // ue = clock(); // e = baka_sec_count(); // gmp_printf("z,%d,%" PRIZgmp "\n", n, zy); // gmp_printf("z,%d,%lf,%lf\n", n, e - s, (double)(ue - us) / CLOCKS_PER_SEC); mpz_init(my); s = baka_sec_count(); gmp_fibonacci_m(n, my); e = baka_sec_count(); //gmp_printf("m,%d,%" PRIZgmp "\n", n, my); gmp_printf("m,%d,%lf,%lf\n", n, e - s, (double)(ue - us) / CLOCKS_PER_SEC); mpz_init(gy); s = baka_sec_count(); mpz_fib_ui(gy, n); e = baka_sec_count(); //gmp_printf("g,%d,%" PRIZgmp "\n", n, gy); gmp_printf("g,%d,%lf,%lf\n", n, e - s, (double)(ue - us) / CLOCKS_PER_SEC); mpz_clear(my); mpz_clear(gy); // mpz_clear(zy); return 0; }
Standard input is empty
/home/U0z5Hy/ccADI9En.o: In function `matpow': prog.c:(.text+0x96): undefined reference to `__gmpz_mul' prog.c:(.text+0xad): undefined reference to `__gmpz_addmul' prog.c:(.text+0xc6): undefined reference to `__gmpz_mul' prog.c:(.text+0xdf): undefined reference to `__gmpz_addmul' prog.c:(.text+0xf2): undefined reference to `__gmpz_mul' prog.c:(.text+0x105): undefined reference to `__gmpz_addmul' prog.c:(.text+0x11a): undefined reference to `__gmpz_mul' prog.c:(.text+0x12f): undefined reference to `__gmpz_addmul' prog.c:(.text+0x13a): undefined reference to `__gmpz_set' prog.c:(.text+0x147): undefined reference to `__gmpz_set' prog.c:(.text+0x152): undefined reference to `__gmpz_set' prog.c:(.text+0x15f): undefined reference to `__gmpz_set' prog.c:(.text+0x175): undefined reference to `__gmpz_mul' prog.c:(.text+0x183): undefined reference to `__gmpz_addmul' prog.c:(.text+0x193): undefined reference to `__gmpz_mul' prog.c:(.text+0x1a3): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1b1): undefined reference to `__gmpz_mul' prog.c:(.text+0x1bf): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1cf): undefined reference to `__gmpz_mul' prog.c:(.text+0x1df): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1ea): undefined reference to `__gmpz_set' prog.c:(.text+0x1f7): undefined reference to `__gmpz_set' prog.c:(.text+0x202): undefined reference to `__gmpz_set' prog.c:(.text+0x20f): undefined reference to `__gmpz_set' prog.c:(.text+0x230): undefined reference to `__gmpz_mul' prog.c:(.text+0x23e): undefined reference to `__gmpz_addmul' prog.c:(.text+0x24e): undefined reference to `__gmpz_mul' prog.c:(.text+0x25e): undefined reference to `__gmpz_addmul' prog.c:(.text+0x26c): undefined reference to `__gmpz_mul' prog.c:(.text+0x27a): undefined reference to `__gmpz_addmul' prog.c:(.text+0x28a): undefined reference to `__gmpz_mul' prog.c:(.text+0x29a): undefined reference to `__gmpz_addmul' prog.c:(.text+0x2a5): undefined reference to `__gmpz_set' prog.c:(.text+0x2b2): undefined reference to `__gmpz_set' prog.c:(.text+0x2bd): undefined reference to `__gmpz_set' prog.c:(.text+0x2ca): undefined reference to `__gmpz_set' prog.c:(.text+0x329): undefined reference to `__gmpz_mul' prog.c:(.text+0x340): undefined reference to `__gmpz_addmul' prog.c:(.text+0x359): undefined reference to `__gmpz_mul' prog.c:(.text+0x372): undefined reference to `__gmpz_addmul' prog.c:(.text+0x385): undefined reference to `__gmpz_mul' prog.c:(.text+0x398): undefined reference to `__gmpz_addmul' prog.c:(.text+0x3ad): undefined reference to `__gmpz_mul' prog.c:(.text+0x3c2): undefined reference to `__gmpz_addmul' prog.c:(.text+0x3cd): undefined reference to `__gmpz_set' prog.c:(.text+0x3da): undefined reference to `__gmpz_set' prog.c:(.text+0x3e5): undefined reference to `__gmpz_set' prog.c:(.text+0x3f2): undefined reference to `__gmpz_set' prog.c:(.text+0x408): undefined reference to `__gmpz_mul' prog.c:(.text+0x416): undefined reference to `__gmpz_addmul' prog.c:(.text+0x426): undefined reference to `__gmpz_mul' prog.c:(.text+0x436): undefined reference to `__gmpz_addmul' prog.c:(.text+0x444): undefined reference to `__gmpz_mul' prog.c:(.text+0x452): undefined reference to `__gmpz_addmul' prog.c:(.text+0x462): undefined reference to `__gmpz_mul' prog.c:(.text+0x472): undefined reference to `__gmpz_addmul' prog.c:(.text+0x47d): undefined reference to `__gmpz_set' prog.c:(.text+0x48a): undefined reference to `__gmpz_set' prog.c:(.text+0x495): undefined reference to `__gmpz_set' prog.c:(.text+0x4a2): undefined reference to `__gmpz_set' prog.c:(.text+0x4ec): undefined reference to `__gmpz_mul' prog.c:(.text+0x501): undefined reference to `__gmpz_addmul' prog.c:(.text+0x518): undefined reference to `__gmpz_mul' prog.c:(.text+0x538): undefined reference to `__gmpz_addmul' prog.c:(.text+0x54b): undefined reference to `__gmpz_mul' prog.c:(.text+0x569): undefined reference to `__gmpz_addmul' prog.c:(.text+0x57c): undefined reference to `__gmpz_mul' prog.c:(.text+0x591): undefined reference to `__gmpz_addmul' prog.c:(.text+0x59c): undefined reference to `__gmpz_set' prog.c:(.text+0x5a9): undefined reference to `__gmpz_set' prog.c:(.text+0x5b4): undefined reference to `__gmpz_set' prog.c:(.text+0x621): undefined reference to `__gmpz_mul' prog.c:(.text+0x638): undefined reference to `__gmpz_addmul' prog.c:(.text+0x651): undefined reference to `__gmpz_mul' prog.c:(.text+0x66a): undefined reference to `__gmpz_addmul' prog.c:(.text+0x67d): undefined reference to `__gmpz_mul' prog.c:(.text+0x690): undefined reference to `__gmpz_addmul' prog.c:(.text+0x6a5): undefined reference to `__gmpz_mul' prog.c:(.text+0x6ba): undefined reference to `__gmpz_addmul' prog.c:(.text+0x6c5): undefined reference to `__gmpz_set' prog.c:(.text+0x6d2): undefined reference to `__gmpz_set' prog.c:(.text+0x6dd): undefined reference to `__gmpz_set' prog.c:(.text+0x6ea): undefined reference to `__gmpz_set' prog.c:(.text+0x729): undefined reference to `__gmpz_mul' prog.c:(.text+0x737): undefined reference to `__gmpz_addmul' prog.c:(.text+0x753): undefined reference to `__gmpz_mul' prog.c:(.text+0x76d): undefined reference to `__gmpz_addmul' prog.c:(.text+0x77b): undefined reference to `__gmpz_mul' prog.c:(.text+0x789): undefined reference to `__gmpz_addmul' prog.c:(.text+0x7a3): undefined reference to `__gmpz_mul' prog.c:(.text+0x7b3): undefined reference to `__gmpz_addmul' prog.c:(.text+0x7be): undefined reference to `__gmpz_set' prog.c:(.text+0x7cb): undefined reference to `__gmpz_set' prog.c:(.text+0x7d6): undefined reference to `__gmpz_set' prog.c:(.text+0x7e3): undefined reference to `__gmpz_set' /home/U0z5Hy/ccADI9En.o: In function `gmp_fibonacci_m.part.0': prog.c:(.text+0x82f): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x83d): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x84e): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x85b): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x869): undefined reference to `__gmpz_init_set_ui' /home/U0z5Hy/ccADI9En.o:prog.c:(.text+0x877): more undefined references to `__gmpz_init_set_ui' follow /home/U0z5Hy/ccADI9En.o: In function `gmp_fibonacci_m.part.0': prog.c:(.text+0x8a4): undefined reference to `__gmpz_init' prog.c:(.text+0x8ac): undefined reference to `__gmpz_init' prog.c:(.text+0x8c0): undefined reference to `__gmpz_init' prog.c:(.text+0x8d4): undefined reference to `__gmpz_init' prog.c:(.text+0x93a): undefined reference to `__gmpz_mul' prog.c:(.text+0x948): undefined reference to `__gmpz_addmul' prog.c:(.text+0x969): undefined reference to `__gmpz_mul' prog.c:(.text+0x98c): undefined reference to `__gmpz_addmul' prog.c:(.text+0x9a7): undefined reference to `__gmpz_mul' prog.c:(.text+0x9b5): undefined reference to `__gmpz_addmul' prog.c:(.text+0x9d1): undefined reference to `__gmpz_mul' prog.c:(.text+0x9e4): undefined reference to `__gmpz_addmul' prog.c:(.text+0x9ef): undefined reference to `__gmpz_set' prog.c:(.text+0x9fc): undefined reference to `__gmpz_set' prog.c:(.text+0xa09): undefined reference to `__gmpz_set' prog.c:(.text+0xa14): undefined reference to `__gmpz_set' prog.c:(.text+0xa3c): undefined reference to `__gmpz_mul' prog.c:(.text+0xa4a): undefined reference to `__gmpz_addmul' prog.c:(.text+0xa58): undefined reference to `__gmpz_mul' prog.c:(.text+0xa66): undefined reference to `__gmpz_addmul' prog.c:(.text+0xa80): undefined reference to `__gmpz_mul' prog.c:(.text+0xa90): undefined reference to `__gmpz_addmul' prog.c:(.text+0xaaa): undefined reference to `__gmpz_mul' prog.c:(.text+0xaba): undefined reference to `__gmpz_addmul' prog.c:(.text+0xac5): undefined reference to `__gmpz_set' prog.c:(.text+0xad0): undefined reference to `__gmpz_set' prog.c:(.text+0xadd): undefined reference to `__gmpz_set' prog.c:(.text+0xaea): undefined reference to `__gmpz_set' prog.c:(.text+0xb1d): undefined reference to `__gmpz_mul' prog.c:(.text+0xb2b): undefined reference to `__gmpz_addmul' prog.c:(.text+0xb39): undefined reference to `__gmpz_mul' prog.c:(.text+0xb47): undefined reference to `__gmpz_addmul' prog.c:(.text+0xb61): undefined reference to `__gmpz_mul' prog.c:(.text+0xb71): undefined reference to `__gmpz_addmul' prog.c:(.text+0xb8b): undefined reference to `__gmpz_mul' prog.c:(.text+0xb9b): undefined reference to `__gmpz_addmul' prog.c:(.text+0xba6): undefined reference to `__gmpz_set' prog.c:(.text+0xbb1): undefined reference to `__gmpz_set' prog.c:(.text+0xbbe): undefined reference to `__gmpz_set' prog.c:(.text+0xbcb): undefined reference to `__gmpz_set' prog.c:(.text+0xc0c): undefined reference to `__gmpz_mul' prog.c:(.text+0xc21): undefined reference to `__gmpz_addmul' prog.c:(.text+0xc38): undefined reference to `__gmpz_mul' prog.c:(.text+0xc58): undefined reference to `__gmpz_addmul' prog.c:(.text+0xc6b): undefined reference to `__gmpz_mul' prog.c:(.text+0xc89): undefined reference to `__gmpz_addmul' prog.c:(.text+0xc9c): undefined reference to `__gmpz_mul' prog.c:(.text+0xcb1): undefined reference to `__gmpz_addmul' prog.c:(.text+0xcbc): undefined reference to `__gmpz_set' prog.c:(.text+0xcc9): undefined reference to `__gmpz_set' prog.c:(.text+0xcd4): undefined reference to `__gmpz_set' prog.c:(.text+0xce1): undefined reference to `__gmpz_set' prog.c:(.text+0xd09): undefined reference to `__gmpz_mul' prog.c:(.text+0xd17): undefined reference to `__gmpz_addmul' prog.c:(.text+0xd25): undefined reference to `__gmpz_mul' prog.c:(.text+0xd33): undefined reference to `__gmpz_addmul' prog.c:(.text+0xd4d): undefined reference to `__gmpz_mul' prog.c:(.text+0xd5d): undefined reference to `__gmpz_addmul' prog.c:(.text+0xd77): undefined reference to `__gmpz_mul' prog.c:(.text+0xd87): undefined reference to `__gmpz_addmul' prog.c:(.text+0xd92): undefined reference to `__gmpz_set' prog.c:(.text+0xd9d): undefined reference to `__gmpz_set' prog.c:(.text+0xdaa): undefined reference to `__gmpz_set' prog.c:(.text+0xdb7): undefined reference to `__gmpz_set' prog.c:(.text+0xdf0): undefined reference to `__gmpz_mul' prog.c:(.text+0xe05): undefined reference to `__gmpz_addmul' prog.c:(.text+0xe1c): undefined reference to `__gmpz_mul' prog.c:(.text+0xe3c): undefined reference to `__gmpz_addmul' prog.c:(.text+0xe4e): undefined reference to `__gmpz_mul' prog.c:(.text+0xe6b): undefined reference to `__gmpz_addmul' prog.c:(.text+0xe7e): undefined reference to `__gmpz_mul' prog.c:(.text+0xe92): undefined reference to `__gmpz_addmul' prog.c:(.text+0xe9d): undefined reference to `__gmpz_set' prog.c:(.text+0xeaa): undefined reference to `__gmpz_set' prog.c:(.text+0xeb5): undefined reference to `__gmpz_set' prog.c:(.text+0xec1): undefined reference to `__gmpz_set' prog.c:(.text+0xece): undefined reference to `__gmpz_set' prog.c:(.text+0xed6): undefined reference to `__gmpz_clear' prog.c:(.text+0xedf): undefined reference to `__gmpz_clear' prog.c:(.text+0xee8): undefined reference to `__gmpz_clear' prog.c:(.text+0xef1): undefined reference to `__gmpz_clear' prog.c:(.text+0xefa): undefined reference to `__gmpz_clear' /home/U0z5Hy/ccADI9En.o:prog.c:(.text+0xf03): more undefined references to `__gmpz_clear' follow /home/U0z5Hy/ccADI9En.o: In function `gmp_fibonacci_m.part.0': prog.c:(.text+0xf8c): undefined reference to `__gmpz_mul' prog.c:(.text+0xfa1): undefined reference to `__gmpz_addmul' prog.c:(.text+0xfb8): undefined reference to `__gmpz_mul' prog.c:(.text+0xfd8): undefined reference to `__gmpz_addmul' prog.c:(.text+0xfeb): undefined reference to `__gmpz_mul' prog.c:(.text+0x1009): undefined reference to `__gmpz_addmul' prog.c:(.text+0x101c): undefined reference to `__gmpz_mul' prog.c:(.text+0x1031): undefined reference to `__gmpz_addmul' prog.c:(.text+0x103c): undefined reference to `__gmpz_set' prog.c:(.text+0x1049): undefined reference to `__gmpz_set' prog.c:(.text+0x1054): undefined reference to `__gmpz_set' prog.c:(.text+0x1061): undefined reference to `__gmpz_set' prog.c:(.text+0x10b5): undefined reference to `__gmpz_mul' prog.c:(.text+0x10ca): undefined reference to `__gmpz_addmul' prog.c:(.text+0x10e1): undefined reference to `__gmpz_mul' prog.c:(.text+0x1104): undefined reference to `__gmpz_addmul' prog.c:(.text+0x111f): undefined reference to `__gmpz_mul' prog.c:(.text+0x112d): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1149): undefined reference to `__gmpz_mul' prog.c:(.text+0x115c): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1167): undefined reference to `__gmpz_set' prog.c:(.text+0x1174): undefined reference to `__gmpz_set' prog.c:(.text+0x1181): undefined reference to `__gmpz_set' prog.c:(.text+0x118c): undefined reference to `__gmpz_set' prog.c:(.text+0x11b4): undefined reference to `__gmpz_mul' prog.c:(.text+0x11c2): undefined reference to `__gmpz_addmul' prog.c:(.text+0x11d0): undefined reference to `__gmpz_mul' prog.c:(.text+0x11de): undefined reference to `__gmpz_addmul' prog.c:(.text+0x11f8): undefined reference to `__gmpz_mul' prog.c:(.text+0x1208): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1222): undefined reference to `__gmpz_mul' prog.c:(.text+0x1232): undefined reference to `__gmpz_addmul' prog.c:(.text+0x123d): undefined reference to `__gmpz_set' prog.c:(.text+0x1248): undefined reference to `__gmpz_set' prog.c:(.text+0x1255): undefined reference to `__gmpz_set' prog.c:(.text+0x1262): undefined reference to `__gmpz_set' prog.c:(.text+0x128e): undefined reference to `__gmpz_mul' prog.c:(.text+0x129c): undefined reference to `__gmpz_addmul' prog.c:(.text+0x12b4): undefined reference to `__gmpz_mul' prog.c:(.text+0x12ce): undefined reference to `__gmpz_addmul' prog.c:(.text+0x12dc): undefined reference to `__gmpz_mul' prog.c:(.text+0x12ea): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1304): undefined reference to `__gmpz_mul' prog.c:(.text+0x1314): undefined reference to `__gmpz_addmul' prog.c:(.text+0x131f): undefined reference to `__gmpz_set' prog.c:(.text+0x132c): undefined reference to `__gmpz_set' prog.c:(.text+0x1337): undefined reference to `__gmpz_set' prog.c:(.text+0x1344): undefined reference to `__gmpz_set' prog.c:(.text+0x1380): undefined reference to `__gmpz_mul' prog.c:(.text+0x1395): undefined reference to `__gmpz_addmul' prog.c:(.text+0x13ac): undefined reference to `__gmpz_mul' prog.c:(.text+0x13cf): undefined reference to `__gmpz_addmul' prog.c:(.text+0x13ea): undefined reference to `__gmpz_mul' prog.c:(.text+0x13f8): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1414): undefined reference to `__gmpz_mul' prog.c:(.text+0x1427): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1432): undefined reference to `__gmpz_set' prog.c:(.text+0x143f): undefined reference to `__gmpz_set' prog.c:(.text+0x144c): undefined reference to `__gmpz_set' prog.c:(.text+0x1457): undefined reference to `__gmpz_set' prog.c:(.text+0x147a): undefined reference to `__gmpz_mul' prog.c:(.text+0x148a): undefined reference to `__gmpz_addmul' prog.c:(.text+0x1498): undefined reference to `__gmpz_mul' prog.c:(.text+0x14a6): undefined reference to `__gmpz_addmul' prog.c:(.text+0x14b6): undefined reference to `__gmpz_mul' prog.c:(.text+0x14c6): undefined reference to `__gmpz_addmul' prog.c:(.text+0x14d6): undefined reference to `__gmpz_mul' prog.c:(.text+0x14e6): undefined reference to `__gmpz_addmul' prog.c:(.text+0x14f3): undefined reference to `__gmpz_set' prog.c:(.text+0x14fe): undefined reference to `__gmpz_set' prog.c:(.text+0x150b): undefined reference to `__gmpz_set' prog.c:(.text+0x1518): undefined reference to `__gmpz_set' /home/U0z5Hy/ccADI9En.o: In function `gmp_fibonacci_z': prog.c:(.text+0x1558): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x157b): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x158b): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x159d): undefined reference to `__gmpz_set_ui' prog.c:(.text+0x15ba): undefined reference to `__gmpz_add' prog.c:(.text+0x15c8): undefined reference to `__gmpz_set' prog.c:(.text+0x15d3): undefined reference to `__gmpz_set' prog.c:(.text+0x15e0): undefined reference to `__gmpz_clear' prog.c:(.text+0x15e8): undefined reference to `__gmpz_clear' prog.c:(.text+0x1606): undefined reference to `__gmpz_init_set_ui' /home/U0z5Hy/ccADI9En.o: In function `matpow': prog.c:(.text+0x5cf): undefined reference to `__gmpz_set' /home/U0z5Hy/ccADI9En.o: In function `gmp_fibonacci_m': prog.c:(.text+0x1635): undefined reference to `__gmpz_init_set_ui' prog.c:(.text+0x164e): undefined reference to `__gmpz_init_set_ui' /home/U0z5Hy/ccADI9En.o: In function `main': prog.c:(.text.startup+0x1a): undefined reference to `__gmpz_init' prog.c:(.text.startup+0xca): undefined reference to `__gmp_printf' prog.c:(.text.startup+0xd2): undefined reference to `__gmpz_init' prog.c:(.text.startup+0x119): undefined reference to `__gmpz_fib_ui' prog.c:(.text.startup+0x17d): undefined reference to `__gmp_printf' prog.c:(.text.startup+0x185): undefined reference to `__gmpz_clear' prog.c:(.text.startup+0x18d): undefined reference to `__gmpz_clear' collect2: error: ld returned 1 exit status
Standard output is empty