# Newbie question

jmonetti at uncu.edu.ar jmonetti at uncu.edu.ar
Mon Jun 8 15:00:11 CEST 2009

```Hello,

I'm trying gmd and have a simple question.  I've the following
c code

...
v2 = A[0][1] * ((2-h)/(2+h))   + A[1][1] * (2+h);
...

The matrix elements, 'v2' and 'h' are "doubles".
I need more precision when calculating this equation, so
started trying gmp.

The problem I found is that cannot express the equation
in a single line with gmp.  Is it right ?
With succesive 'adds' and 'muls' I calculated in the following
form

//        ------------------------6-------------------
//        -----------5-----------
//                   -----3------     -------4--------
//                   --1--  --2--               --2--
//   v2 = A[0][1] * ((2-h)/(2+h))   + A[1][1] * (2+h);

Simplified GMP CODE
-------------------
...
mpf_set_ui(  A[0][0] , 1);
mpf_set_ui(  A[0][1] , 1);
mpf_set_ui(  A[1][0] , 1);
mpf_set_ui(  A[1][1] , 1);
mpf_init(h );
mpf_init(v1 );
mpf_init(v2 );
mpf_init(delta );
mpf_init(menosuno );
mpf_init(uno );
mpf_init(dos );
mpf_init(tres );
mpf_init(aux1 );
mpf_init(aux2 );
mpf_init(aux3 );
mpf_init(aux4 );
mpf_init(aux5 );
mpf_init(aux6 );

mpf_set_ui( h        , 1);
mpf_set_ui( delta    , 2);
mpf_set_ui( menosuno , 1);
mpf_set_ui( uno      , 1);
mpf_set_ui( dos      , 2);
mpf_set_ui( tres     , 3);

while(  mpf_cmp(v2, tres)   ) {
mpf_mul(aux1, A[0][0],  menosuno);
mpf_mul(aux2, A[0][1], dos);

mpf_sub(aux1, dos, h) ;
mpf_div(aux3, aux1, aux2) ;
mpf_mul(aux4, A[1][1], aux2) ;
mpf_mul(aux5, A[0][1], aux3) ;