[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Help-gsl] Can I create a symmtric matrix?

**From**: |
Shixin Zeng |

**Subject**: |
Re: [Help-gsl] Can I create a symmtric matrix? |

**Date**: |
Wed, 18 May 2005 14:47:27 +0800 |

**User-agent**: |
Mozilla Thunderbird 1.0 (Windows/20041206) |

Brian Gough wrote:

Shixin Zeng writes:

`> I'm writing a FEM(Finite Elements Mothed) program using gsl to do
``> matrix/vector operations.
``> For the matrix is very big and symmetric, so I'm wondering if there
``> is a way to create a symmetric matrix? I've read the manual, but I can't
``> find any functions to do so.
`
The raw CBLAS functions have support for packed (symmetric) matrices.

`
``
`

`What do you mean by "support"? I guess you mean that CBLAS functions
``get/set elements of matrix merely via _get/_set functions, rather than
``visit the memory occupied by that element directorly, so if I implement
``myself _get/_set methods of matrices, then CBLAS will work fine, is it?
`

GSL matrices don't have this, but you could define a few _get/_set
packed access functions for such matrices.

`
``
`

Could you give me some examples?
Could I do it like this?
typedef struct {
gsl_matrix m;
} my_sym_matrix;
my_sym_matrix* *my_sym_matrix_alloc*(size_t, size_t);
double *my_sym_matrix_get* /(const gsl_matrix * m, size_t i, size_t j);
/void *my_sym_matrix_set* /(gsl_matrix * m, size_t i, size_t j, double x);
/|void|/| |/*my_sym_matrix_free*/(my_sym_matrix *m);
/Then, just treat my_sym_matrix as gsl_matrix for other operations?
But how CBLAS/gsl functions invoke my_sym* functions?
Thanks for your reply.
Best regards
Shixin Zeng