9 de julho de 2009

Matrices Direct Product C GSL routine

This is my amateur routine of Matrices Direct Product or Kronecker Product using GSL. There is no advantage in doing this with GSL library, this is just a exercise.


#include <stdio.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_math.h>

double *produtodireto (int a,int b, double A[a*a],double B[b*b])
{
double *AxB;
AxB = malloc(a*a*b*b*(sizeof *AxB));
int i, j, k,l;
gsl_matrix *M = gsl_matrix_alloc (a,a);
gsl_matrix *L = gsl_matrix_alloc (b,b);
for (i = 0; i < a; i++)
{
for (j = 0; j < a; j++)
{
gsl_matrix_set (M, i, j, A[i+a*j]);
}
}
for (i = 0; i < b; i++)
{
for (j = 0; j < b; j++)
{
gsl_matrix_set (L, i, j, B[i+b*j]);
}
}
gsl_matrix *R = gsl_matrix_alloc (a*b,a*b);
for (i = 0; i < a; i++)
{
for (j = 0; j < a; j++)
{
for (k = 0; k < b; k++)
{
for (l = 0; l < b; l++)
{
gsl_matrix_set (R, b*i+k-b+2,b*j+l-b+2, gsl_matrix_get (M, i, j)*gsl_matrix_get (L, k, l));
}
}
}
}
for (i = 0; i < a*b; i++)
{/* OUT OF RANGE ERRORRRRR */
for (j = 0; j < a*b; j++)
{
AxB[i+a*b*j]=gsl_matrix_get (R, i, j);
}
}

gsl_matrix_free (M);
gsl_matrix_free (L);
gsl_matrix_free (R);
return AxB;
}


Using GSL to calculate Nonsymmetric matrices eigenvalues

Here is a example of using GSL - Gnu Scientific Library - to calculate the eigenvalues of a nonsymmetric matrix.
This is a simple example write in C. GSL uses BLAS and can be optimized with ATLAS, so can be used as a real tool for heavy calculations. To get know more about GSL visit http://www.gnu.org/software/gsl/ or the manual page.

Hint: Beware when using GSL or our own linear algebra routine, remember that greats matrices requires greats responsibilities, so keep track of precision errors. Find precision errors will be a great excuse to know more about multiple precision GMP .


#include <stdio.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_eigen.h>
int main (void)
{
int a=2; //matrix a x a
int i,j;
double cg[a][a];

// Defining matrix
cg[0][0] = 2.;
cg[0][1] = 3.;
cg[1][0] = -1.;
cg[1][1] = 1.;

gsl_matrix *TOTAL = gsl_matrix_alloc (a,a); //Alloc GSL matrix TOTAL

//Setting TOTAL
for (i = 0; i < a; i++)
{
for (j = 0; j < a; j++)
{
gsl_matrix_set (TOTAL, i, j, cg[i][j]);
}
}


gsl_vector_complex *eval = gsl_vector_complex_alloc (a); //Vector whose entries are the eigenvalues
gsl_eigen_nonsymm_workspace *K = gsl_eigen_nonsymm_alloc (a); //alloc work space for GSL nonsymmetric calculations
gsl_eigen_nonsymm (TOTAL,eval,K);
gsl_eigen_nonsymm_free (K);
gsl_matrix_free (TOTAL);


for (i = 0; i < a; i++) /* OUT OF RANGE ERROR */
{
gsl_complex eval_i = gsl_vector_complex_get (eval, i);
printf ("%g + %g*i\n",GSL_REAL(eval_i),GSL_IMAG(eval_i) );
}
return 0;
}

8 de julho de 2009

Testando a extenção do Firefox Firescribe

Gostei !!



26 de abril de 2009

casa de ferreiro, espeto de pau

A linux mall é tem muitos produtos interessantes, eu costumo comprar coisas lá, a entrega é muito boa etc.

Estou precisando de um novo router e um adaptador wireless e ao consultar a loja me deparei com um fato muito estranho.
O adaptador parece ter drivers disponíveis para linux (RTL8187B). Custa testar e aprovar ?
Vamos lá, a loja tem um nicho específico !

12 de abril de 2009

Dica de Jogos

Rick Rocket, um excelente jogo de combate espacial com gráficos são no estilo cartoon. A história é simple mas envolvente, diversos inimigos, armas e muita criatividade.


Escalon RPG clássico, muito bem feito !


Penumbra, este Jogo tem gráficos de primeira ! Muito suspense e terror, um historia muito bem construída, e recurso de manipulação de objetos inovador !

Uma ultima dica e o jogo IL2 Sturmovik 1946 este não é nativo para linux mas foi apontado como platinum no wineHQ !

Todos os jogos descritos tem demos gratuitos !

25 de junho de 2008

Promoção: Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!

Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!


Eu vou fazer uma contribuição financeira de 10 doletas, ainda não decidi para quem. Logo reportarei isso !

6 de junho de 2008

Firefox Download Day

Citando notícia do BR-linux:

Brasil disputando com Polônia o segundo lugar no Firefox Dowload Day

“O Firefox Download Day é uma iniciativa da Fundação Mozilla que tem como objetivo bater o recorde mundial de downloads de software em um único dia, assim entrando para o Ginnes - O livro dos Records. Ao invés de simplesmente marcar um data para o evento, a formato da iniciativa foi mais criativo: você registra-se no site http://www.spreadfirefox.com/pt-BR/worldrecord/ dizendo que quer participar e quando o número de inscritos superar a marca necessária para o recorde, um e-mail será disparado avisando todos sobre a data para realizar o download.

A iniciativa tem tido bastante divulgação no Brasil (inclusive no BR-Linux, tanto que quase 60 mil brasileiros já se inscreveram. O Brasil vem disputando dia-a-dia o segundo lugar no número de inscritos com a Polônia, sendo que os dois países revezam-se nessa segunda posição, apenas atrás dos Estados Unidos.”

Enviado por Juliano (julianoΘlec·ufrgs·br) para Br-linux - referência (spreadfirefox.com).




Participe


Download Day - Portuguese