Discussion:
[OT]: quale linguaggio di programmazione?
(too old to reply)
Premoli, Roberto
2005-05-27 06:33:34 UTC
Permalink
Mmm... per routine di calcolo veloci python non è il più adatto, ma C
credo di sì!
Dovrei fare dei calcoli con numeri *GROSSI* e 32bit potrebbero non essere
sufficienti. Il C riesce a gestire numeri interi a 64 o piu' bit?
Visto che il coprocessore matematico gestisce numeri a 80bit, dovrebbero
esserci le relative librerie matematiche, no?

Se usassi un X86_64, potrei avere calcoli NATIVI a 64bit.
E magari esistono librerie a 128bit nel C per X86_64?

Qualcuno in lista che usa il C mi saprebbe rispondere?

Roberto
Federico Di Gregorio
2005-05-27 07:55:35 UTC
Permalink
Post by Premoli, Roberto
Mmm... per routine di calcolo veloci python non è il più adatto, ma C
credo di sì!
Dovrei fare dei calcoli con numeri *GROSSI* e 32bit potrebbero non essere
sufficienti. Il C riesce a gestire numeri interi a 64 o piu' bit?
Visto che il coprocessore matematico gestisce numeri a 80bit, dovrebbero
esserci le relative librerie matematiche, no?
Se fai conti di quel tipo non usi la libreria standard del C ma
una delle tante librerie matematiche a precisione finita (i float
hanno comunque errori di arrotondamento). In Debian ci sono parecchie
librerie del genere ma ora non ricordo i nomi.

federico
--
To UNSUBSCRIBE, email to debian-italian-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Premoli, Roberto
2005-05-27 08:15:59 UTC
Permalink
Post by Premoli, Roberto
Post by Premoli, Roberto
Dovrei fare dei calcoli con numeri *GROSSI* e 32bit potrebbero non
essere
Post by Premoli, Roberto
sufficienti. Il C riesce a gestire numeri interi a 64 o piu' bit?
Visto che il coprocessore matematico gestisce numeri a 80bit, dovrebbero
esserci le relative librerie matematiche, no?
Se fai conti di quel tipo non usi la libreria standard del C ma
una delle tante librerie matematiche a precisione finita (i float
hanno comunque errori di arrotondamento). In Debian ci sono parecchie
librerie del genere ma ora non ricordo i nomi.
La necessita' mia principale e' gestire divisioni, moltiplicazioni, radici
quadrate e cicli for-next. Quindi mi servono i numeri interi e con la
virgola.
A questo punto, penso di orientarmi verso il C, per poi verificare la
possibilita' di passare all'assembler per vedere se posso accelerare ancora
di più... considerando che ho usato l'assembler Z80, non dovrei avere molte
difficoltà (SPERO!) ad imparare l'assembler X86.

E qui parte la domada: esistono interfacce grafiche (magari ncurses) per
programmare in C/assembler su linux?
Mi ricordo che per dos esisteva un soft della borland per il C: forniva una
interfaccia a caratteri con varie opzioni, una specie di editor con
(apri/salva/compila, etc etc).
Esiste qualcosa di analogo per il pinguino?
Siti di tutorial?
Ho un pdf: "tricky C" che spiega in italiano il C per dos, ma preferirei
qualcosa orientato 100% per linux.

Roberto
int
2005-05-27 09:39:16 UTC
Permalink
Post by Premoli, Roberto
La necessita' mia principale e' gestire divisioni, moltiplicazioni, radici
quadrate e cicli for-next. Quindi mi servono i numeri interi e con la
virgola.
A questo punto, penso di orientarmi verso il C, per poi verificare la
possibilita' di passare all'assembler per vedere se posso accelerare ancora
di più... considerando che ho usato l'assembler Z80, non dovrei avere molte
difficoltà (SPERO!) ad imparare l'assembler X86.
Guardati le estensioni SIMD, cioè quelle cose tipo MMX, SSE, 3Dnow!
eccetera, se nei tuoi calcoli puoi usarli. Cmq i doc Intel si chiamano
così: 24547012 24547112 24547212, sono pdf, cerca con google o sul sito
intel.com.
Comunque, in genere fidati delle ottimizzazioni del compilatore laddove
possibile.
--
To UNSUBSCRIBE, email to debian-italian-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Davide Lo Re
2005-05-27 10:10:59 UTC
Permalink
Post by Premoli, Roberto
E qui parte la domada: esistono interfacce grafiche (magari
ncurses) per programmare in C/assembler su linux?
xwpe
ricorda molto il Turbo C come interfaccia.
L'avevo provato, e mi sembra avesse un buon sistema di debugging tipo
il Turbo C, ma come editor non mi piaceva.
Sono subito tornato al mio buon VIM!!
Post by Premoli, Roberto
forniva una interfaccia a caratteri con varie opzioni, una specie
di editor con (apri/salva/compila, etc etc).
Turbo C, appunto. Il cui unico punto di forza, secondo me, era il
debugging, visto che non aveva ne' syntax highlighting, ne'
auto-indentazione, ne' altre cose che un buon editor dovrebbe avere...
Post by Premoli, Roberto
Roberto
Ciao
Davide
Sandro Tosi
2005-05-27 22:16:52 UTC
Permalink
Post by Premoli, Roberto
La necessita' mia principale e' gestire divisioni, moltiplicazioni, radici
quadrate e cicli for-next. Quindi mi servono i numeri interi e con la
virgola.
A questo punto, penso di orientarmi verso il C, per poi verificare la
possibilita' di passare all'assembler per vedere se posso accelerare ancora
Ti faccio una proposta un po' contro-tendenza e retro': perche' non
provi fortran? Che che se ne dica, per questioni di puro calcolo e'
ancora meglio del C. Di poco, si intenda (attorno al 1-3 %) ma dipende
dal numero di operazioni. Considera, inoltre, che fortran gestisce
l'aritmetica dei numeri complessi nativamente (se ne hai bisogno).

Ciao
--
Sandro Tosi (aka Morpheus, matrixhasu)
My (little) site: http://matrixhasu.altervista.org/index.html
Davide Prina
2005-05-28 09:24:28 UTC
Permalink
Post by Premoli, Roberto
Dovrei fare dei calcoli con numeri *GROSSI* e 32bit potrebbero non essere
sufficienti. Il C riesce a gestire numeri interi a 64 o piu' bit?
in C++ (e penso anche in C) il tipo long long int è formato da 8 byte e
permette di usare numeri interi tra -2^63 e 2^63 - 1

***** a.cpp *******
#include <iostream>

using namespace std;

int main( int ArgC, char *AgrV[] )
{
unsigned long long int a;
a = 1273473949672888896LL;
cout << sizeof( a ) << ' ' << a << '\n';
}
*******************

$ g++ a.cpp; ./a.out

Se però non ti basta, ci sono varie classi C++ che permettono di avere
interi con una precisione arbitraria (mediante i template) ... io li
avevo usati, ma non ricordo più per cosa e neppure dove li avevo presi.
Mi ricordo che c'era una classe che faceva qualcosa di simile con nome
big_int o qualcosa di simile

Su sourceforge ho trovato questo progetto:
http://sourceforge.net/projects/dclib/

Se cerchi con google di sicuro qualcosa trovi.

Ciao
Davide
--
Linux User: 302090: http://counter.li.org
Prodotti consigliati:
Sistema operativo: Debian: http://www.it.debian.org
Strumenti per l'ufficio: OpenOffice.org: http://it.openoffice.org
Database: PostgreSQL: http://www.postgres.org
Browser: FireFox: http://texturizer.net/firefox
Client di posta: Thunderbird: http://texturizer.net/thunderbird
Enciclopedia: wikipedia: http://it.wikipedia.org
--
Non autorizzo la memorizzazione del mio indirizzo di posta a chi usa
outlook: non voglio essere invaso da spam
Continue reading on narkive:
Loading...