#include<time.h>
#include < stdio.h>
#include < stdlib.h>
//void *malloc(size_t n);
#include "f2c.h"
#include "clapack.h"

#define SIZE 60
clock_t start, stop; //clock_t为clock()函数返回的变量类型
double duration;
int main(void)
{
integer n = SIZE;
integer i, j;
real num; //保存随机数
real down = -20, top = 20;//区间范围
complex A[SIZE*SIZE]; //double B[ N ]; double C[N];
///////////////////////////////////////////////////////////
srand((unsigned int)time(NULL));//设置当前时间为随机数种子
for (i = 0; i < SIZE*SIZE; i++)
{
num = (real)rand() / RAND_MAX;
//产生0-1之间的随机数,RAND_MAX是生成随机数的最大值
A[i].r = down + num*(top - down);

num = (real)rand() / RAND_MAX;
A[i].i = down + num*(top - down);

}
//A[0].r = 16.07; A[0].i = -15.07; A[1].r = 19.32; A[1].i = 11.21; A[2].r = 16.45; A[2].i = -0.46; A[3].r = 9.22; A[3].i = 17.17;
////////////////////////////////////////////////////////
//printf("A.r = \n");
//for (i = 0; i < SIZE; i++) {
// for (j = 0; j < SIZE; j++) {
// printf("%10.5f ", A[i*SIZE+j].r);
// }
// printf("\n");
//}
//printf("A.i = \n");
//for (i = 0; i < SIZE; i++) {
// for (j = 0; j < SIZE; j++) {
// printf("%10.5f ", A[i*SIZE + j].i);
// }
// printf("\n");
//}
////////////////////////////////////////////////////////
integer info;
char jobvl = 'N';
char jobvr = 'V';
complex *a = A;
integer lda = n;
//printf("////////////info:%d\n", sizeof(complex) * n);
complex w[SIZE];
complex wi[SIZE];
integer ldvr = n;
complex vl[SIZE*SIZE];
complex vr[SIZE*SIZE];
integer ldvl = n;

integer lwork = SIZE * 4; real rwork[SIZE * 2];
complex work[SIZE * 4];
start = clock();
cgeev_(&jobvl, &jobvr, &n, A, &lda, w, vl, &ldvl, vr, &ldvr, work, &lwork, &rwork, &info);
stop = clock(); duration = (double)(stop - start) / CLOCKS_PER_SEC;

printf("duration:%f\n", duration);
printf("D = \n");
//for (i = 0; i < n; i++) {
// //for (j = 0; j < n; j++) {
// //printf("%10.5f", w[i * n + j].r);
// printf("%10.5f", w[i ].i);
// //}
// printf("\n");
//}

//printf("Vr = \n");
//for (i = 0; i < n; i++) {
// for (j = 0; j < n; j++) {
// printf("%10.5f", vr[n * j + i]);
// }
// printf("\n");
//}
return info;
}

posted on 2021-04-26 16:57  Alcibiade  阅读(548)  评论(0编辑  收藏  举报