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 );
}
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 |