<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
&nbsp;
<p>Glynn Clements wrote:
<blockquote TYPE=CITE>Massimiliano Cannata wrote:
<p>> I'm trying write a code that use a raster to make
<br>> calulation....
<br>> so I get the raster cell value (CELL, FCELL, DCELL
<br>> depending on the original map) and then i have to
<br>> use the math.h function
<br>>
<br>> double pow(double,double)
<br>>
<br>> so, how do I have to cast CELL, FCELL or DCELL to
<br>> double?
<br>> It seems that
<br>>
<br>> double x;
<br>> x = (double) CELL
<br>>
<br>> doesn't work...
<p>It should work.
<p>> more, I have to really do this casting?
<p>ANSI C will automatically cast numeric function arguments to the
<br>appropriate type, so you can just pass CELL values to pow() directly.
<p>--
<br>Glynn Clements &lt;glynn.clements@virgin.net></blockquote>
So if it is able an automatic cast...
<br>i don't really need to develop 3 version of my calculus module as in
the "r.example" for the switch type....
<br>i can just make one, doing someting like:
<p>double mycalculus(double x)
<p>and than pass CELL, DCELL or FCELL as argument?????
<p>Thanks a lot.
<br>Max
<p>____________
<br>---r.example----
<br>____________
<br>switch (data_type)
<br><i>&nbsp;&nbsp; case CELL_TYPE:</i>
<br><i>&nbsp;&nbsp;&nbsp; c = ((CELL *) inrast)[col];</i>
<br><i>&nbsp;&nbsp;&nbsp; <b>c = c_calc(c)</b>; /* calculate */</i>
<br><i>&nbsp;&nbsp;&nbsp; ((CELL *) outrast)[col] = c;</i>
<br><i>&nbsp;&nbsp;&nbsp; break;</i>
<br><i>&nbsp;&nbsp; case FCELL_TYPE:</i>
<br><i>&nbsp;&nbsp;&nbsp; f = ((FCELL *) inrast)[col];</i>
<br><i>&nbsp;&nbsp;&nbsp;<b> f = f_calc(f)</b>; /* calculate */</i>
<br><i>&nbsp;&nbsp;&nbsp; ((FCELL *) outrast)[col] = f;</i>
<br><i>&nbsp;&nbsp;&nbsp; break;</i>
<br><i>&nbsp;&nbsp; case DCELL_TYPE:</i>
<br><i>&nbsp;&nbsp;&nbsp; d = ((DCELL *) inrast)[col];</i>
<br><i>&nbsp;&nbsp;&nbsp; <b>d = d_calc(d)</b>; /* calculate */</i>
<br><i>&nbsp;&nbsp;&nbsp; ((DCELL *) outrast)[col] = d;</i>
<br><i>&nbsp;&nbsp;&nbsp; break;</i>
<br><i>&nbsp;&nbsp; }</i>
<br>&nbsp;
<br>&nbsp;
<p>--
<br>-------------
<br>Ing.&nbsp; Massimiliano Cannata
<br>Istituto di Scienze della Terra - SUPSI
<br>C.P. 72 - CH-6952 Canobbio (Ticino, Switzerland)
<br>Tel +41 91 /935 12 25 - Fax +41 91 /935 12 09
<br>eMail: massimiliano.cannata@ist.supsi.ch
<br>Internet: <A HREF="http://www.ist.supsi.ch">http://www.ist.supsi.ch</A>
<br>&nbsp;</html>