📄 ilut_main.cpp
字号:
#include"stdio.h"
#include"ilut.h"
int main()
{
struct Distmatrix *dm;
struct Preconmat *precon;
struct Prepar *ipar;
int i,j;
dm=(struct Distmatrix *)malloc(sizeof(struct Distmatrix));
precon=(struct Preconmat *)malloc(sizeof(struct Preconmat));
ipar=(struct Prepar *)malloc(sizeof(struct Prepar));
dm->dimension=4;
dm->ma=(double **)malloc(4*sizeof(double));
dm->ja=(int **)malloc(4*sizeof(int));
dm->nnzrow=(int *)malloc(4*sizeof(int));
for(i=0;i<4;i++)
{
dm->ma[i]=(double *)malloc(3*sizeof(double));
dm->ja[i]=(int *)malloc(3*sizeof(int));
}
dm->ma[0][0]=4.0;
dm->ma[0][1]=-1.0;
dm->ma[0][2]=-1.0;
dm->ma[1][0]=-1.0;
dm->ma[1][1]=4.0;
dm->ma[1][2]=-1.0;
dm->ma[2][0]=-1.0;
dm->ma[2][1]=4.0;
dm->ma[2][2]=-1.0;
dm->ma[3][0]=-1.0;
dm->ma[3][1]=-1.0;
dm->ma[3][2]=4.0;
dm->ja[0][0]=0;
dm->ja[0][1]=1;
dm->ja[0][2]=3;
dm->ja[1][0]=0;
dm->ja[1][1]=1;
dm->ja[1][2]=2;
dm->ja[2][0]=1;
dm->ja[2][1]=2;
dm->ja[2][2]=3;
dm->ja[3][0]=0;
dm->ja[3][1]=2;
dm->ja[3][2]=3;
dm->nnzrow[0]=3;
dm->nnzrow[1]=3;
dm->nnzrow[2]=3;
dm->nnzrow[3]=3;
ipar->lfil=4;
ipar->ufil=4;
ipar->droptol=0;
ilut(dm,precon,ipar);
printf("The L part:\n");
for(i=0;i<precon->L->dimension;i++)
{
for(j=0;j<precon->L->nnzrow[i];j++)
{
printf("The (%d,%d) entry is:%f\n",i,precon->L->ja[i][j],precon->L->ma[i][j]);
if(i==3)
printf("ind[3][%d]\n",precon->L->ja[i][j]);
}
}
printf("\n\nThe U part:\n");
for(i=0;i<precon->U->dimension;i++)
{
for(j=0;j<precon->U->nnzrow[i];j++)
printf("The (%d,%d) entry is:%f\n",i,precon->U->ja[i][j],precon->U->ma[i][j]);
}
getchar();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -