Article View: chile.comp.programacion
Article #2582Re: Portar codigo C entre maquinas de 32/64 bits?
From: Jos� Miguel Santib��ez
Date: Tue, 13 Dec 2005 03:55
Date: Tue, 13 Dec 2005 03:55
50 lines
3035 bytes
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-mailReferences:
<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