🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2582

Re: Portar codigo C entre maquinas de 32/64 bits?

#2582
From: Jos� Miguel Santib��ez
Date: Tue, 13 Dec 2005 03:55
50 lines
3035 bytes
En el cap�tulo anterior (news:40656sF18epvjU1@individual.net), "Andres E. 
Hernando" <NOherSPnandoAM@fas.harvard.edu> dijo:

> Hola!
>      
>      Seguro que estoy poniendo en evidencia lo oxidado que
> estoy, pero mi copia del Kernighan y Ritchie esta juntando 
> polvo en Chile y necesito arreglar esto antes de irme...
> 
>      Bueno, por alguna razon (no importa cual) tengo que
> usar un generador de numeros pseudoaleatorios externo en 
> Matlab. Por un tema de eficiencia, lo estoy haciendo en C
> usando mex files.
> 
>      El PRNG (Pseudo Random Number Generator) que tengo que
> usar es una version de KISS (Keep It Simple, Stupid) que usa
> operaciones de bits en uno de sus generadores. Basicamente,
> la siguientes lineas:
> 
>      y  ^= y << 13;
>      y  ^= y >> 17;
>      y  ^= y <<  5;
> 
>      Donde y es un numero de 32 bits... Y aqui esta todo
> mi problema, porque tengo que compartir esto y tiene que 
> funcionar igual en maquinas de 32 y de 64 bits. Por lo que 
> declarar y como "unsigned long int" no me funciona ya que 
> en la maquina Linux donde tiene que correr, un "unsigned
> long int" es de 64 bits, asi que los shifts/xor me generan
> resultados distintos en cada maquina.
> 
>      Estoy seguro que debe haber una forma de asegurarme
> que y es siempre de 32 bits independiente de la arquitectura, 
> pero hace como 4 annos que no programo en C... Algun puntero
> a la ayuda adecuada?
> 

Puede que la mia sea una pregunta weona, pero si es un PRNG, no veo cual es 
el error de que entregue resultados diferentes en cada m�quina....

En todo caso, yo revisar�a la doc de la plataforma para buscar el 
equivalente (INT32?) 

-- 
"que manera de postear imbecilidades."
      (mundialero en CBI)

                           Jose M. Santiba�ez A.
                             <jms@nivel5.cl>
                           <http://caos.cl/jms>
Technical Details
Message-ID: <Xns972B13AEF2F27jmsnews@200.27.221.71>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.vcd.cl!not-for-mail
References: <40656sF18epvjU1@individual.net>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,88c16e828b86c7df
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Newsgroups: chile.comp.programacion
Subject: Re: Portar codigo C entre maquinas de 32/64 bits?
From: "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl>
References: <40656sF18epvjU1@individual.net>
Organization: Caos Consultores
Message-ID: <Xns972B13AEF2F27jmsnews@200.27.221.71>
User-Agent: Xnews/5.04.25
X-Face: +|NgjgFM{<rs%\Q|vUu16]a6,}?MJTA<!PEEI+x&Gw-Gyq+?$}fvo+.(,-r;)~Qzn)#{{nxU,OT?w^s<7m4ckCJ*L$c#I)yHL7b)GdU*#l
NNTP-Posting-Host: 69-207-246-201.adsl.terra.cl
X-Original-NNTP-Posting-Host: 69-207-246-201.adsl.terra.cl
Date: 12 Dec 2005 23:55:53 -0400
X-Trace: news.vcd.cl!not-for-mail 1134446153 69-207-246-201.adsl.terra.cl (12 Dec 2005 23:55:53 -0400)
X-Original-Trace: 12 Dec 2005 23:55:53 -0400, 69-207-246-201.adsl.terra.cl
Lines: 50
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.vcd.cl!not-for-mail