sorry for the late reply, been working long days, too tired...
VB6 to call a dll in both stdl and cdecl, but now can't find it.
but for version 4 use am import lib and the follwing code.
Code: Select all
;you can download gmp from ftp://deltatrinity.dyndns.org/
Structure mpz ; multiprecision integer
mp_alloc.l
mp_size.l
mp_limb.l
EndStructure
Structure mpq ; multiprecision rational
mp_num.mpz
mp_den.mpz
EndStructure
Structure mpf ; multiprecision floating point
mp_prec.l
mp_size.l
mp_expt.l
mp_limb.l
EndStructure
ImportC "libgmp-3.lib"
gmp_sprintz.l(dest.s,format.s,*n.mpz) As "___gmp_sprintf"
gmp_sprintq.l(dest.s,format.s,*n.mpq) As "___gmp_sprintf"
gmp_sprintf.l(dest.s,format.s,*n.mpf) As "___gmp_sprintf"
mpf_set_default_prec(prec.l) As "___gmpf_set_default_prec"
mpf_get_default_prec.l() As "___gmpf_get_default_prec"
mpf_init(*x.mpf) As "___gmpf_init"
mpf_init2(*x.mpf,prec.l) As "___gmpf_init2"
mpf_clear(*x.mpf) As "___gmpf_clear"
mpf_get_prec.l(*op.mpf) As "___gmpf_get_prec"
mpf_set_prec(*rop.mpf,prec.l) As "___gmpf_set_prec"
mpf_set_prec_raw(*rop.mpf,prec.l) As "___gmpf_set_prec_raw"
mpf_set(*rop.mpf,*op.mpf) As "___gmpf_set"
mpf_set_ui(*rop.mpf,op.l) As "___gmpf_set_ui"
mpf_set_si(*rop.mpf,op.l) As "___gmpf_set_si"
mpf_set_d(*rop.mpf,op.d) As "___gmpf_set_d"
mpf_set_z(*rop.mpf,*op.mpz) As "___gmpf_set_z"
mpf_set_q(*rop.mpf,*op.mpq) As "___gmpf_set_q"
mpf_set_str.l(*rop.mpf,str.s,base.l) As "___gmpf_set_str"
mpf_swap(*rop1.mpf,*rop2.mpf) As "___gmpf_swap"
mpf_init_set(*rop.mpf,*op.mpf) As "___gmpf_init_set"
mpf_init_set_ui(*rop.mpf,op.l) As "___gmpf_init_set_ui"
mpf_init_set_si(*rop.mpf,op.l) As "___gmpf_init_set_si"
mpf_init_set_d(*rop.mpf,op.d) As "___gmpf_init_set_d"
mpf_init_set_str.l(*rop.mpf,str.s,base.l) As "___gmpf_init_set_str"
mpf_get_d.d(*op.mpf) As "___gmpf_get_d"
mpf_get_d_2exp.d(expt.l,*op.mpf) As "___gmpf_get_d_2exp"
mpf_get_si.l(*op.mpf) As "___gmpf_get_si"
mpf_get_ui.l(*op.mpf) As "___gmpf_get_ui"
mpf_get_str.s(str.s,expptr.l,base.l,n_digits.l,*op.mpf) As "___gmpf_get_str"
mpf_ceil(*rop.mpf,*op.mpf) As "___gmpf_ceil"
mpf_floor(*rop.mpf,*op.mpf) As "___gmpf_floor"
mpf_trunc(*rop.mpf,*op.mpf) As "___gmpf_trunc"
mpf_integer_p.l(*op.mpf) As "___gmpf_integer_p"
mpf_fits_ulong_p.l(*op.mpf) As "___gmpf_fits_ulong_p"
mpf_fits_slong_p.l(*op.mpf) As "___gmpf_fits_slong_p"
mpf_fits_uint_p.l(*op.mpf) As "___gmpf_fits_uint_p"
mpf_fits_sint_p.l(*op.mpf) As "___gmpf_fits_sint_p"
mpf_fits_ushort_p.l(*op.mpf) As "___gmpf_fits_ushort_p"
mpf_fits_sshort_p.l(*op.mpf) As "___gmpf_fits_sshort_p"
mpf_add(*rop.mpf,*op1.mpf,*op2.mpf) As "___gmpf_add"
mpf_add_ui(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_add_ui"
mpf_sub(*rop.mpf,*op1.mpf,*op2.mpf) As "___gmpf_sub"
mpf_ui_sub(*rop.mpf,op1.l,*op2.mpf) As "___gmpf_ui_sub"
mpf_sub_ui(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_sub_ui"
mpf_mul(*rop.mpf,*op1.mpf,*op2.mpf) As "___gmpf_mul"
mpf_mul_ui(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_mul_ui"
mpf_div(*rop.mpf,*op1.mpf,*op2.mpf) As "___gmpf_div"
mpf_ui_div(*rop.mpf,op1.l,*op2.mpf) As "___gmpf_ui_div"
mpf_div_ui(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_div_ui"
mpf_sqrt(*rop.mpf,*op.mpf) As "___gmpf_sqrt"
mpf_sqrt_ui(*rop.mpf,op.l) As "___gmpf_sqrt_ui"
mpf_pow_ui(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_pow_ui"
mpf_neg(*rop.mpf,*op.mpf) As "___gmpf_neg"
mpf_abs(*rop.mpf,*op.mpf) As "___gmpf_abs"
mpf_mul_2exp(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_mul_2exp"
mpf_div_2exp(*rop.mpf,*op1.mpf,op2.l) As "___gmpf_div_2exp"
mpf_cmp.l(*op1.mpf,*op2.mpf) As "___gmpf_cmp"
mpf_cmp_d.l(*op1.mpf,op2.d) As "___gmpf_cmp_d"
mpf_cmp_ui.l(*op1.mpf,op2.l) As "___gmpf_cmp_ui"
mpf_cmp_si.l(*op1.mpf,op2.l) As "___gmpf_cmp_si"
mpf_eq.l(*op1.mpf,*op2.mpf,op3.l) As "___gmpf_eq"
mpf_reldiff(*rop.mpf,*op1.mpf,*op2.mpf) As "___gmpf_reldiff"
mpf_sgn.l(*op.mpf) As "___gmpf_sgn"
gmp_snprintf.l(buf.s,size.l,fmt.s,*op.mpf) As "___gmp_snprintf"
mpz_init(*integer.mpz) As "___gmpz_init"
mpz_init2(*integer.mpz,n.l) As "___gmpz_init2"
mpz_clear(*integer.mpz) As "___gmpz_clear"
mpz_realloc2(*integer.mpz,n.l) As "___gmpz_realloc2"
; mpz_realloc.l(*integer.mpz,) As "____gmpz_realloc"
mpz_set(*rop.mpz,*op.mpz) As "___gmpz_set"
mpz_set_ui(*rop.mpz,op.l) As "___gmpz_set_ui"
mpz_set_si(*rop.mpz,op.l) As "___gmpz_set_si"
mpz_set_d(*rop.mpz,op.d) As "___gmpz_set_d"
mpz_set_q(*rop.mpz,*op.mpq) As "___gmpz_set_q"
mpz_set_f(*rop.mpz,*op.mpf) As "___gmpz_set_f"
mpz_set_str.l(*rop.mpz,str.s,base.l) As "___gmpz_set_str"
mpz_swap(*rop1.mpz,*rop2.mpz) As "___gmpz_swap"
mpz_init_set(*rop.mpz,*op.mpz) As "___gmpz_init_set"
mpz_init_set_ui(*rop.mpz,op.l) As "___gmpz_init_set_ui"
mpz_init_set_si(*rop.mpz,op.l) As "___gmpz_init_set_si"
mpz_init_set_d(*rop.mpz,op.d) As "___gmpz_init_set_d"
mpz_init_set_str.l(*rop.mpz,str.s,base.l) As "___gmpz_init_set_str"
mpz_add(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_add"
mpz_add_ui(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_add_ui"
mpz_sub(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_sub"
mpz_sub_ui(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_sub_ui"
mpz_ui_sub(*rop.mpz,op1.l,*op2.mpz) As "___gmpz_ui_sub"
mpz_mul(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_mul"
mpz_mul_si(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_mul_si"
mpz_mul_ui(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_mul_ui"
mpz_addmul(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_addmul"
mpz_addmul_ui(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_addmul_ui"
mpz_submul(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_submul"
mpz_submul_ui(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_submul_ui"
mpz_mul_2exp(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_mul_2exp"
mpz_neg(*rop.mpz,*op.mpz) As "___gmpz_neg"
mpz_abs(*rop.mpz,*op.mpz) As "___gmpz_abs"
mpz_cdiv_q(*q.mpz,*n.mpz,*d.mpz) As "___gmpz_cdiv_q"
mpz_cdiv_r(*r.mpz,*n.mpz,*d.mpz) As "___gmpz_cdiv_r"
mpz_cdiv_qr(*q.mpz,*r.mpz,*n.mpz,*d.mpz) As "___gmpz_cdiv_qr"
mpz_cdiv_q_ui.l(*q.mpz,*n.mpz,d.l) As "___gmpz_cdiv_q_ui"
mpz_cdiv_r_ui.l(*r.mpz,*n.mpz,d.l) As "___gmpz_cdiv_r_ui"
mpz_cdiv_qr_ui.l(*q.mpz,*r.mpz,*n.mpz,d.l) As "___gmpz_cdiv_qr_ui"
mpz_cdiv_ui.l(*n.mpz,d.l) As "___gmpz_cdiv_ui"
mpz_cdiv_q_2exp(*q.mpz,*n.mpz,b.l) As "___gmpz_cdiv_q_2exp"
mpz_cdiv_r_2exp(*r.mpz,*n.mpz,b.l) As "___gmpz_cdiv_r_2exp"
mpz_fdiv_q(*q.mpz,*n.mpz,*d.mpz) As "___gmpz_fdiv_q"
mpz_fdiv_r(*r.mpz,*n.mpz,*d.mpz) As "___gmpz_fdiv_r"
mpz_fdiv_qr(*q.mpz,*r.mpz,*n.mpz,*d.mpz) As "___gmpz_fdiv_qr"
mpz_fdiv_q_ui.l(*q.mpz,*n.mpz,d.l) As "___gmpz_fdiv_q_ui"
mpz_fdiv_r_ui.l(*r.mpz,*n.mpz,d.l) As "___gmpz_fdiv_r_ui"
mpz_fdiv_qr_ui.l(*q.mpz,*r.mpz,*n.mpz,d.l) As "___gmpz_fdiv_qr_ui"
mpz_fdiv_ui.l(*n.mpz,d.l) As "___gmpz_fdiv_ui"
mpz_fdiv_q_2exp(*q.mpz,*n.mpz,b.l) As "___gmpz_fdiv_q_2exp"
mpz_fdiv_r_2exp(*r.mpz,*n.mpz,b.l) As "___gmpz_fdiv_r_2exp"
mpz_tdiv_q(*q.mpz,*n.mpz,*d.mpz) As "___gmpz_tdiv_q"
mpz_tdiv_r(*r.mpz,*n.mpz,*d.mpz) As "___gmpz_tdiv_r"
mpz_tdiv_qr(*q.mpz,*r.mpz,*n.mpz,*d.mpz) As "___gmpz_tdiv_qr"
mpz_tdiv_q_ui.l(*q.mpz,*n.mpz,d.l) As "___gmpz_tdiv_q_ui"
mpz_tdiv_r_ui.l(*r.mpz,*n.mpz,d.l) As "___gmpz_tdiv_r_ui"
mpz_tdiv_qr_ui.l(*q.mpz,*r.mpz,*n.mpz,d.l) As "___gmpz_tdiv_qr_ui"
mpz_tdiv_ui.l(*n.mpz,d.l) As "___gmpz_tdiv_ui"
mpz_tdiv_q_2exp(*q.mpz,*n.mpz,b.l) As "___gmpz_tdiv_q_2exp"
mpz_tdiv_r_2exp(*r.mpz,*n.mpz,b.l) As "___gmpz_tdiv_r_2exp"
mpz_mod(*r.mpz,*n.mpz,*d.mpz) As "___gmpz_mod"
mpz_mod_ui.l(*r.mpz,*n.mpz,d.l) As "___gmpz_mod_ui"
mpz_divexact(*q.mpz,*n.mpz,*d.mpz) As "___gmpz_divexact"
mpz_divexact_ui(*q.mpz,*n.mpz,d.l) As "___gmpz_divexact_ui"
mpz_divisible_p.l(*n.mpz,*d.mpz) As "___gmpz_divisible_p"
mpz_divisible_ui_p.l(*n.mpz,d.l) As "___gmpz_divisible_ui_p"
mpz_divisible_2exp_p.l(*n.mpz,b.l) As "___gmpz_divisible_2exp_p"
mpz_congruent_p.l(*n.mpz,*c.mpz,*d.mpz) As "___gmpz_congruent_p"
mpz_congruent_ui_p.l(*n.mpz,c.l,d.l) As "___gmpz_congruent_ui_p"
mpz_congruent_2exp_p.l(*n.mpz,*c.mpz,b.l) As "___gmpz_congruent_2exp_p"
mpz_powm(*rop.mpz,*base.mpz,*expt.mpz,*mod.mpz) As "___gmpz_powm"
mpz_powm_ui(*rop.mpz,*base.mpz,expt.l,*mod.mpz) As "___gmpz_powm_ui"
mpz_pow_ui(*rop.mpz,*base.mpz,expt.l) As "___gmpz_pow_ui"
mpz_ui_pow_ui(*rop.mpz,base.l,expt.l) As "___gmpz_ui_pow_ui"
mpz_root.l(*rop.mpz,*op.mpz,n.l) As "___gmpz_root"
mpz_sqrt(*rop.mpz,*op.mpz) As "___gmpz_sqrt"
mpz_sqrtrem(*rop1.mpz,*rop2.mpz,*op.mpz) As "___gmpz_sqrtrem"
mpz_perfect_power_p.l(*op.mpz) As "___gmpz_perfect_power_p"
mpz_perfect_square_p.l(*op.mpz) As "___gmpz_perfect_square_p"
mpz_probab_prime_p.l(*n.mpz,reps.l) As "___gmpz_probab_prime_p"
mpz_nextprime(*rop.mpz,*op.mpz) As "___gmpz_nextprime"
mpz_gcd(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_gcd"
mpz_gcd_ui.l(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_gcd_ui"
mpz_gcdext(*g.mpz,*s.mpz,*t.mpz,*a.mpz,*b.mpz) As "___gmpz_gcdext"
mpz_lcm(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_lcm"
mpz_lcm_ui(*rop.mpz,*op1.mpz,op2.l) As "___gmpz_lcm_ui"
mpz_invert.l(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_invert"
mpz_jacobi.l(*a.mpz,*b.mpz) As "___gmpz_jacobi"
mpz_legendre.l(*a.mpz,*p.mpz) As "___gmpz_legendre"
mpz_kronecker.l(*a.mpz,*b.mpz) As "___gmpz_kronecker"
mpz_kronecker_si.l(*a.mpz,b.l) As "___gmpz_kronecker_si"
mpz_kronecker_ui.l(*a.mpz,b.l) As "___gmpz_kronecker_ui"
mpz_si_kronecker.l(a.l,*b.mpz) As "___gmpz_si_kronecker"
mpz_ui_kronecker.l(a.l,*b.mpz) As "___gmpz_ui_kronecker"
mpz_remove.l(*rop.mpz,*op.mpz,*f.mpz) As "___gmpz_remove"
mpz_fac_ui(*rop.mpz,op.l) As "___gmpz_fac_ui"
mpz_bin_ui(*rop.mpz,*n.mpz,k.l) As "___gmpz_bin_ui"
mpz_bin_uiui(*rop.mpz,n.l,k.l) As "___gmpz_bin_uiui"
mpz_fib_ui(*fn.mpz,n.l) As "___gmpz_fib_ui"
mpz_fib2_ui(*fn.mpz,*fnsub1.mpz,n.l) As "___gmpz_fib2_ui"
mpz_lucnum_ui(*ln.mpz,n.l) As "___gmpz_lucnum_ui"
mpz_lucnum2_ui(*ln.mpz,*lnsub1.mpz,n.l) As "___gmpz_lucnum2_ui"
mpz_cmp.l(*op1.mpz,*op2.mpz) As "___gmpz_cmp"
mpz_cmp_d.l(*op1.mpz,op2.d) As "___gmpz_cmp_d"
mpz_cmp_si.l(*op1.mpz,op2.l) As "____gmpz_cmp_si"
mpz_cmp_ui.l(*op1.mpz,op2.l) As "____gmpz_cmp_ui"
mpz_cmpabs.l(*op1.mpz,*op2.mpz) As "___gmpz_cmpabs"
mpz_cmpabs_d.l(*op1.mpz,op2.d) As "___gmpz_cmpabs_d"
mpz_cmpabs_ui.l(*op1.mpz,op2.l) As "___gmpz_cmpabs_ui"
mpz_sgn.l(*op.mpz) As "___gmpz_sgn"
mpz_and(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_and"
mpz_ior(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_ior"
mpz_xor(*rop.mpz,*op1.mpz,*op2.mpz) As "___gmpz_xor"
mpz_com(*rop.mpz,*op.mpz) As "___gmpz_com"
mpz_popcount.l(*op.mpz) As "___gmpz_popcount"
mpz_hamdist.l(*op1.mpz,*op2.mpz) As "___gmpz_hamdist"
mpz_scan0.l(*op.mpz,starting_bit.l) As "___gmpz_scan0"
mpz_scan1.l(*op.mpz,starting_bit.l) As "___gmpz_scan1"
mpz_setbit(*rop.mpz,bit_index.l) As "___gmpz_setbit"
mpz_clrbit(*rop.mpz,bit_index.l) As "___gmpz_clrbit"
mpz_tstbit.l(*op.mpz,bit_index.l) As "___gmpz_tstbit"
mpz_import(*rop.mpz,count.l,order.l,size.l,endian.l,nails.l,op.l) As "___gmpz_import"
mpz_export.l(rop.l,countp.l,order.l,size.l,endian.l,nails.l,*op.mpz) As "___gmpz_export"
mpz_fits_ulong_p.l(*op.mpz) As "___gmpz_fits_ulong_p"
mpz_fits_slong_p.l(*op.mpz) As "___gmpz_fits_slong_p"
mpz_fits_uint_p.l(*op.mpz) As "___gmpz_fits_uint_p"
mpz_fits_sint_p.l(*op.mpz) As "___gmpz_fits_sint_p"
mpz_fits_ushort_p.l(*op.mpz) As "___gmpz_fits_ushort_p"
mpz_fits_sshort_p.l(*op.mpz) As "___gmpz_fits_sshort_p"
mpz_odd_p.l(*op.mpz) As "___gmpz_odd_p"
mpz_even_p.l(*op.mpz) As "___gmpz_even_p"
mpz_size.l(*op.mpz) As "___gmpz_size"
mpz_sizeinbase.l(*op.mpz,base.l) As "___gmpz_sizeinbase"
mpq_init(*dest_rational.mpq) As "___gmpq_init"
mpq_clear(*rational_number.mpq) As "___gmpq_clear"
mpq_set(*rop.mpq,*op.mpq) As "___gmpq_set"
mpq_set_z(*rop.mpq,*op.mpz) As "___gmpq_set_z"
mpq_set_ui(*rop.mpq,op1.l,op2.l) As "___gmpq_set_ui"
mpq_set_si(*rop.mpq,op1.l,op2.l) As "___gmpq_set_si"
mpq_set_str.l(*rop.mpq,str.s,base.l) As "___gmpq_set_str"
mpq_swap(*rop1.mpq,*rop2.mpq) As "___gmpq_swap"
mpq_get_d.d(*op.mpq) As "___gmpq_get_d"
mpq_set_d(*rop.mpq,op.d) As "___gmpq_set_d"
mpq_set_f(*rop.mpq,*op.mpf) As "___gmpq_set_f"
mpq_get_str.s(str.s,base.l,*op.mpq) As "___gmpq_get_str"
mpq_add(*sum.mpq,*addend1.mpq,*addend2.mpq) As "___gmpq_add"
mpq_sub(*difference.mpq,*minuend.mpq,*subtrahend.mpq) As "___gmpq_sub"
mpq_mul(*product.mpq,*multiplier.mpq,*multiplicand.mpq) As "___gmpq_mul"
mpq_mul_2exp(*rop.mpq,*op1.mpq,op2.l) As "___gmpq_mul_2exp"
mpq_div(*quotient.mpq,*dividend.mpq,*divisor.mpq) As "___gmpq_div"
mpq_div_2exp(*rop.mpq,*op1.mpq,op2.l) As "___gmpq_div_2exp"
mpq_neg(*negated_operand.mpq,*operand.mpq) As "___gmpq_neg"
mpq_abs(*rop.mpq,*op.mpq) As "___gmpq_abs"
mpq_inv(*inverted_number.mpq,*number.mpq) As "___gmpq_inv"
mpq_cmp.l(*op1.mpq,*op2.mpq) As "___gmpq_cmp"
mpq_cmp_ui.l(*op1.mpq,num2.l,den2.l) As "____gmpq_cmp_ui"
mpq_cmp_si.l(*op1.mpq,num2.l,den2.l) As "____gmpq_cmp_si"
mpq_sgn.l(*op.mpq) As "___gmpq_sgn"
mpq_equal.l(*op1.mpq,*op2.mpq) As "___gmpq_equal"
mpq_get_num(*numerator.mpz,*rational.mpq) As "___gmpq_get_num"
mpq_get_den(*denominator.mpz,*rational.mpq) As "___gmpq_get_den"
mpq_set_num(*rational.mpq,*numerator.mpz) As "___gmpq_set_num"
mpq_set_den(*rational.mpq,*denominator.mpz) As "___gmpq_set_den"
mpq_canonicalize(*op.mpq) As "___gmpq_canonicalize"
EndImport
OpenConsole()
ConsoleTitle ("GMP.DLL test")
s.s
; integer -------------------------------------------------------------------------
i.mpz
j.mpz
k.mpz
mpz_init(@i) ;initialize multi-precision integer
mpz_init(@j)
mpz_init(@k)
mpz_set_str(@i,"2",10) ;i = 2 base 10
mpz_set_str(@j,"7",10)
mpz_mul(@k,@i,@j) ;k = i * j
s=Space(256) ;allocate memory for string
gmp_sprintz(s,"%Zd",@k) ;sprint the value of k into string s
PrintN(s)
mpz_clear(@k) ;de-allocate memory
mpz_clear(@j)
mpz_clear(@i)
; rational ------------------------------------------------------------------------
n.mpq
m.mpq
q.mpq
mpq_init(@n)
mpq_init(@m)
mpq_init(@q)
mpq_set_str(@n,"4/12",10)
mpq_canonicalize(@n)
mpq_set_str(@m,"1/5",10)
mpq_add(@q,@n,@m)
s=Space(256)
gmp_sprintq(s,"%Qd",@q)
PrintN(s)
mpq_clear(@q)
mpq_clear(@m)
mpq_clear(@n)
; floating point ------------------------------------------------------------------
x.mpf
y.mpf
z.mpf
mpf_init2(@x,256)
mpf_init2(@y,256)
mpf_init2(@z,256)
mpf_set_str(@x,"2",10)
mpf_sqrt(@y,@x)
s=Space(256)
gmp_sprintf(s,"%77.72Fe",@y)
PrintN(s)
mpf_pow_ui(@z,@y,2)
s=Space(256)
gmp_sprintf(s,"%77.72Fe",@z)
PrintN(s)
mpf_clear(@z)
mpf_clear(@y)
mpf_clear(@x)
Print("press the return key to end. ")
Input()
CloseConsole()
End