<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FireTeam &#187; blas</title>
	<atom:link href="http://www.fireteam.it/tag/blas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fireteam.it</link>
	<description>#fuoco@AzzurraNet</description>
	<lastBuildDate>Tue, 16 Mar 2010 15:55:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Libreria BLAS</title>
		<link>http://www.fireteam.it/2009/07/libreria-blas/</link>
		<comments>http://www.fireteam.it/2009/07/libreria-blas/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 21:52:44 +0000</pubDate>
		<dc:creator>saverio</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[blas]]></category>

		<guid isPermaLink="false">http://www.fireteam.it/?p=493</guid>
		<description><![CDATA[LE LIBRERIE BLAS
Le routine di blas si contengono {BLAS 3} C {BLAS 2} C {BLAS 1}
BLAS 1: Operazioni vettore-vettore (SAXPY, SDOt, &#8230;)
BLAS 2: Operavioni matrice-vettore (SGEMV, &#8230;)
BLAS 3: Operazioni matrice-matrice (SGEMM, &#8230;)

SUFFISSO
Ogni routine di BLAS (1, 2, 3) ha un suffisso rappresentato da una sola
lettera. Essa puo&#8217; essere:
- s : reale in singola precisione
- d [...]]]></description>
			<content:encoded><![CDATA[<h2><a href="http://www.fireteam.it/wp-content/uploads/2009/07/iStock_calculus.jpg"><img class="alignright size-full wp-image-618" title="calcoli-penna-foglio" src="http://www.fireteam.it/wp-content/uploads/2009/07/iStock_calculus.jpg" alt="calcoli-penna-foglio" width="168" height="126" /></a>LE LIBRERIE BLAS</h2>
<p>Le routine di blas si contengono {BLAS 3} C {BLAS 2} C {BLAS 1}<br />
BLAS 1: Operazioni vettore-vettore (SAXPY, SDOt, &#8230;)<br />
BLAS 2: Operavioni matrice-vettore (SGEMV, &#8230;)<br />
BLAS 3: Operazioni matrice-matrice (SGEMM, &#8230;)</p>
<p><span id="more-493"></span></p>
<h2>SUFFISSO</h2>
<p>Ogni routine di BLAS (1, 2, 3) ha un suffisso rappresentato da una sola<br />
lettera. Essa puo&#8217; essere:<br />
- s : reale in singola precisione<br />
- d : reale in doppia precisione<br />
- c : complesso in singola precisione<br />
- z : complesso in doppia precisione</p>
<h2>BLAS 1</h2>
<p>Cercare il nome delle routine direttamente sulle Quick-References.</p>
<h2>BLAS 2</h2>
<p>Il nome delle routine e&#8217; strutturato in questo modo: X YY ZZ</p>
<p>&#8211;&gt; X  e&#8217; il suffisso<br />
- s : reale in singola precisione<br />
- d : reale in doppia precisione<br />
- c : complesso in singola precisione<br />
- z : complesso in doppia precisione</p>
<p>&#8211;&gt; YY e&#8217; il formato del dato<br />
- GE : matrice di formato generico<br />
- GB : matrice a banda<br />
- SY : matrice simmetrica<br />
- TR : matrice triangolare</p>
<p>&#8211;&gt; ZZ e&#8217; l&#8217;operazione da svolgere<br />
- MV : prodotto matrice-vettore<br />
- SV : risoluzione di un sistema di equazioni lineare</p>
<h2>BLAS 2</h2>
<p>Il nome delle routine e&#8217; strutturato in questo modo: X YY ZZ</p>
<p>&#8211;&gt; X  e&#8217; il suffisso<br />
- s : reale in singola precisione<br />
- d : reale in doppia precisione<br />
- c : complesso in singola precisione<br />
- z : complesso in doppia precisione</p>
<p>&#8211;&gt; YY e&#8217; il formato del dato<br />
- GE : tutte le matrici sono di formato generico<br />
- HE : una delle matrici e&#8217; hermitiane<br />
- SY : una delle matrici e&#8217; simmetrica<br />
- TR : una delle matrici e&#8217; triangolare</p>
<p>&#8211;&gt; ZZ e&#8217; l&#8217;operazione da svolgere<br />
- MM : prodotto matrice-matrice<br />
- SM : risoluzione di piu&#8217; sistemi di equazioni lineari</p>
<h2>ALCUNI PARAMETRI COMUNI</h2>
<p>&gt; int incx : fattore di incremento del vettore x</p>
<p>&gt; int incy : fattore di incremento del vettore y</p>
<p>&gt; char uplo : &#8216;u&#8217; (upper) se triangolare superiore,<br />
&#8216;l&#8217; (lower) se triangolare inferiore.</p>
<p>&gt; char trans : &#8216;n&#8217; se la matrice non si deve considerare trasposta,<br />
&#8216;t&#8217; (trasposta) altrimenti.</p>
<p>&gt; char diag : &#8216;u&#8217; (unitaria) se la diagonale e&#8217; unitaria,<br />
&#8216;n&#8217; altrimenti</p>
<p>&gt; char side : &#8216;l&#8217; (left) la matrice deve stare a sinistra dell&#8217;altra<br />
&#8216;r&#8217; (right) la matrice deve stare a destra dell&#8217;altra</p>
<h2>LIMITAZIONI DI BLAS</h2>
<p>BLAS non prevede particolari metodi di memorizzazione per le matrici (come<br />
Packed Storage o Band Storage), quindi spreca molto spazio.<br />
Inoltre nelle routine di BLAS 3 sfrutta le caratteristiche di una sola delle<br />
due matrici, e non entrambe.</p>
<h2>COMPILARE UN PROGRAMMA CHE UTILIZZA BLAS</h2>
<p>BLAS 1:       gcc -o ese prog.c -lblas<br />
BLAS 2 e 3:   gcc -o ese prog.c -lblas -lg2c</p>
<h2>CHIAMARE UNA ROUTINE FORTRAN DAL C</h2>
<p>Passare tutti i valori per indirizzo (quindi passiamo solo puntatori).<br />
il nome della routine, quando viene chiamata deve essere seguito da un carattere<br />
underscore&#8230; cioe&#8217;: sgemm_(&amp;parametri);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fireteam.it/2009/07/libreria-blas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
