Re: SRF written in C

From: Felipe de Jesús Molina Bravo <felipe(dot)molina(at)inegi(dot)gob(dot)mx>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Martijn van Oosterhout <kleptog(at)svana(dot)org>, pgsql-general(at)postgresql(dot)org
Subject: Re: SRF written in C
Date: 2008-07-02 15:19:00
Message-ID: 1215011940.4372.18.camel@fjmb
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

El mié, 02-07-2008 a las 10:39 -0400, Alvaro Herrera escribió:
> Felipe de Jesús Molina Bravo wrote:
>
> > I suspect that my error is:
> >
> > r = obtPadre( &intF->izq, &intF->der );
>
> You didn't show obtPadre().
>
ok it is:

Racional* obtPadre( Racional *li, Racional *ld){
Racional *lip;
Racional *tr = NULL; //ap temporal, para hacer el intercambio
bool cont;
int opAnt; //operacion anterior


lip = (Racional *) palloc(sizeof(Racional));
tr = (Racional *) palloc(sizeof(Racional));

cont = true;
opAnt = 0;
while( cont ){

if ( li->num > ld->num ){
//intercambiamos li <-> ld
SWAP_RACIONAL(li, ld );
cont = false;
}
lip->num = ld->num - li->num;
lip->den = ld->den - li->den;
if ( cont ){
while( cont ){
//recorremos
SWAP_RACIONAL(li, ld );
li->num = lip->num;
li->den = lip->den;

if ( li->num > ld->num ){ //si hay intercambio ...
continua en el ciclo
SWAP_RACIONAL(li, ld );
}else{ //si no hay intercambio
cont = false; //salimos del ciclo ....
}
//... pero antes de salir calculamos
lip->num = ld->num - li->num;
lip->den = ld->den - li->den;
}

}
}

return ( lip );
}

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-07-02 15:35:08 Re: pg_dump - lost synchronization with server: got message type "d", length 6036499
Previous Message Tom Lane 2008-07-02 15:17:58 Re: pg crashing