Ivan Shmakov wrote:

>  >>> I tried running r.univar on the same map for comparison, but it
>  >>> crashed while trying to compute the percentile (the other
>  >>> statistics were computed okay).
> 
>  >> Is it due to the memory allocation issues, or?
> 
>  > I don't know. 30m cells * 8 bytes per cell = ~240MiB. The system has
>  > 1GiB of swap, so malloc() shouldn't fail.
> 
> $ nl -ba stats.c 
> ...
>    135            /* TODO: mode, skewness, kurtosis */
>    136            if (param.extended->answer) {
>    137                qpos_perc = (int *) G_calloc(stats->n_perc, 
> sizeof(int));
>    138                quartile_perc = (double *) G_calloc(stats->n_perc, 
> sizeof(double));
>    139                for (i = 0; i < stats->n_perc; i++) {
>    140                    qpos_perc[i] = (int) (stats->n * stats->perc[i] / 
> 100. - 0.5);
>    141                }
> ...
> $ 
> 
>       Here, it should rather be, e. g.:
> 
>    qpos_perc[i] = (int) (stats->n * 1e-2 * stats->perc[i] - 0.5);

Right.

>       (BTW, would it benefit from an explicit round ()?)

I don't think so. Also, just removing the -0.5 would give the same
result as round().

-- 
Glynn Clements <[EMAIL PROTECTED]>
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to