Hello,
I would like to calculate A^p where A is a symetric matrix. I know that I can use A^p but i would like to know is there is way to calculate only (n²+n)/2 coefficients and just paste the (n²-n)/2 last that are equals ? Or simply do this optimization for A*B where A and B are both symetrics ?
Thank you :)

댓글 수: 4

Bruno Luong
Bruno Luong 2021년 4월 29일
What typical values of n and p ?
Damien GUILLOTIN
Damien GUILLOTIN 2021년 4월 29일
From 1 to 1000 ^^'
Bruno Luong
Bruno Luong 2021년 4월 30일
편집: Bruno Luong 2021년 4월 30일
"Or simply do this optimization for A*B where A and B are both symetrics ?"
How? For generic A and B symmetric the product is NOT symmetric. If you decide to access only the upper parts of A and B, you make memory access pattern more complex and inefficient for caching.
Damien GUILLOTIN
Damien GUILLOTIN 2021년 4월 30일
Exact hehe ! When the words go faster than your maths... it happens ^^

댓글을 달려면 로그인하십시오.

 채택된 답변

Bruno Luong
Bruno Luong 2021년 4월 30일
편집: Bruno Luong 2021년 4월 30일

0 개 추천

Youeu can edit MATLAB function mpower.m and try to the basic calculation (line 76 in my case)
D = D*D; % I assume p is integer in your case
With multiplicationfor triu elements then reflect.
However I would doubt you could beat MATLAB generic matrix product.

추가 답변 (1개)

Jan
Jan 2021년 4월 29일

0 개 추천

Are you using this already:
Do you have a C compiler such that you can try to modify the above solutions and call LAPACK:DSYMM instead of DGEMM?

댓글 수: 2

Damien GUILLOTIN
Damien GUILLOTIN 2021년 4월 29일
First, thank you for your answer !
Then, the function you are proposing are still calculating all the terms (faster than the basic operation for sure) but I really want to exploit the symetric aspect of the matrix. (It is more I have to than I want to, you know, school projects)
I don't really understand what you meant at the end ^^'
Bruno Luong
Bruno Luong 2021년 4월 30일
편집: Bruno Luong 2021년 4월 30일
I revisit mpower2 and all the speed up around 2010 when the FEX is publiseh becomes very little now wth R2021a.

댓글을 달려면 로그인하십시오.

카테고리

질문:

2021년 4월 29일

댓글:

2021년 4월 30일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by