[Gfoss] CGAL

a.furieri a lqt.it a.furieri a lqt.it
Gio 23 Apr 2015 19:52:16 CEST


On Thu, 23 Apr 2015 18:47:56 +0200, Rocco Pispico wrote:
> Ciao a tutti,
> ne sapete qualcosa? 
>
> http://www.cgal.org/ [1]
>
> Esperienze?
>

ciao Rocco,

risposta molto "spannnometrica": e' una corposa libreria [1]
che implementa un visibilio di algoritmi geometrici.
in pratica intende essere un rimpiazzo totale per la GEOS.

CGAL si basa su Boost [2] (altro bestione pesantissimo) e la
sua caratteristica principale e' che non usa affatto l'aritmetica
floating point (sempre a precisione finita per definzione).
tutti i calcoli di CGAL sono a precisione infinita, e quindi non
sono mai soggetti a tutti quegli antipatici erroretti di troncamento
ed arrotondamento che invece spesso affliggono la GEOS.
inoltre CGAL offre un supporto pieno e totale per il 3D, non si
limita alle approssimazioni 2.5D come fa GEOS.

da un paio d'anni a questa parte esiste una variante "sperimentale"
di PostGIS [3] basata su CGAL [3]

[1] http://en.wikipedia.org/wiki/CGAL
[2] http://en.wikipedia.org/wiki/Boost_%28C%2B%2B_libraries%29
[3] https://wiki.postgresql.org/images/3/36/Postgis_3d_pgday2013_hm.pdf


> Pregi difetti?
>

pregi
-----------------------
sostanzialmente uno ed uno solo (ma bello grande)
supporta un'aritmentica a precisione infinita liberandosi cosi' da
tutti i ben noti "pasticciotti" che affliggono tutti gli approcci
tradizionali basati su aritmetica floating point a precisione
finita. e supporta pienamente le geometrie 3D.


difetti
-----------------------
1) rinunciando ad avvalersi del co-processore HW floating point
    ormai disponibile anche sulle CPU di classe ultra-economy non
    sempre riesce a sfruttare bene la potenza di calcolo disponibile.
    rispetto alla GEOS e' lecito attendersi un miglioramento
    impressionante della qualita' dei risultati, ma sicuramente
    questo avverra' al prezzo di un notevole rallentamento.
    presumibilmsnte nel caso di elaborazioni particolarmente
    pesanti il rallentamento sara' penosamente evidente, forse
    fino al punto di compromettere l'usabilita'.
2) la GEOS non e' perfetta, ma ha alle spalle anni ed anni
    di sapiente messa a punto e di paziente debugging.
    CGAL e' un progetto molto piu' recente, e quindi e'
    lecito attendersi che non sia ancora del tutto maturo;
    non e' da escludere che ancora contenga un buon numero
    di bugs.
3) gia' la GEOS e' una libreria pesantuccia, ma non e' nulla
    rispetto a CGAL; dire che l'accoppiata Boost+CGAL ha
    dimensioni e complessita' incredibilmente mostruose non
    rende pienamente l'idea.
4) le condizioni di licenza sono un brutto pasticciaccio;
    alcune parti sono open, altre sono closed, altre ancora
    dipende dal contesto d'uso. un orrido mostro, almeno a
    prima vista.

conclusione (personalissima, e sicuramente opinabile): un
bellissimo e nobilissimo esecizio di bravura tirato fino
all'estremo e sicuramente in grado di affascinare accademici
e ricercatori per tutto quel che promette sul piano
teorico (non a caso, e' un progetto portato avanti da un
consorzio di universita' ed enti di ricerca).
magari sara' anche la via del futuro prossimo venturo; ma
io personalmente per ora preferisco prudentemente tenermi
bella stretta la buona vecchia GEOS evitando di avventurami
in esperienze potenzialmente sanguinose :-D

ciao Sandro


Maggiori informazioni sulla lista Gfoss