C GMP Hello World on Leopard (OS X 10.5)
A simple GMP Hello World example in C.
Makefile
all:
gcc -o gmp_hello_world gmp_hello_world.c -lgmp -m64
clean:
rm gmp_hello_world
gmp_hello_world.c
/*
* GMP Hello World on OS X 10.5
*/
#include <gmp.h>
#include <stdio.h>
int main() {
mpz_t add_total1, add_total2, sub_total1, sub_total2, mul_total1, mul_total2;
mpz_t num1, num2;
// Initialize variables
mpz_init_set_str(num1, "345192567923875922375736284875732", 10);
mpz_init_set_str(num2, "937929298382994742939293857584837", 10);
mpz_init(add_total1);
mpz_init(add_total2);
mpz_init(sub_total1);
mpz_init(sub_total2);
mpz_init(mul_total1);
mpz_init(mul_total2);
// Do arithmetic
mpz_add(add_total1, num1, num2);
mpz_add_ui(add_total2, num1, 10);
mpz_sub(sub_total1, num1, num2);
mpz_sub_ui(sub_total2, num1, 10);
mpz_mul(mul_total1, num1, num2);
mpz_mul_ui(mul_total2, num1, 10);
// Display results
gmp_printf("Add Total 1: %Zd\n", add_total1);
gmp_printf("Add Total 2: %Zd\n", add_total2);
gmp_printf("Subtract Total 1: %Zd\n", sub_total1);
gmp_printf("Subtract Total 2: %Zd\n", sub_total2);
gmp_printf("Multiply Total 1: %Zd\n", mul_total1);
gmp_printf("Multiply Total 2: %Zd\n", mul_total2);
// Free space
mpz_clear(num1);
mpz_clear(num2);
mpz_clear(add_total1);
mpz_clear(add_total2);
mpz_clear(sub_total1);
mpz_clear(sub_total2);
mpz_clear(mul_total1);
mpz_clear(mul_total2);
return 0;
}