当我尝试在putty中编译这个.c文件时,它会抛出这个错误:
在'SolvePrecondMatrix'之前预期'=',',',';','asm'或'属性'。
我不知道如何解决它。我在我的代码中检查了两次,我没有错过任何“;”但我不知道为什么。 任何人都可以帮助我。
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<mpi.h>
#define EPSILON 1.0E-20
#define MAX_ITERATIONS 10000
/******************************************************************************/
void
GetPreconditionMatrix(double **Bloc_Precond_Matrix, int NoofRows_Bloc,
int NoofCols)
{
/*... Preconditional Martix is identity matrix .......*/
int Bloc_MatrixSize;
int irow, icol, index;
double *Precond_Matrix;
Bloc_MatrixSize = NoofRows_Bloc*NoofCols;
Precond_Matrix = (double *) malloc(Bloc_MatrixSize * sizeof(double));
index = 0;
for(irow=0; irow<NoofRows_Bloc; irow++){
for(icol=0; icol<NoofCols; icol++){
Precond_Matrix[index++] = 1.0;
}
}
*Bloc_Precond_Matrix = Precond_Matrix;
}
/******************************************************************************/
double
ComputeVectorDotProduct(double *Vector1, double *Vector2, int VectorSize)
{
int index;
double Product;
Product = 0.0;
for(index=0; index<VectorSize; index++)
Product += Vector1[index]*Vector2[index];
return(Product);
}
/******************************************************************************/
void
CalculateResidueVector(double *Bloc_Residue_Vector, double *Bloc_Matrix_A,
double *Input_B, double *Vector_X, int NoofRows_Bloc int VectorSize, int MyRank)
{
/*... Computes residue = AX - b .......*/
int irow, index, GlobalVectorIndex;
double value;
GlobalVectorIndex = MyRank * NoofRows_Bloc;
for(irow=0; irow<NoofRows_Bloc; irow++){
index = irow * VectorSize;
value = ComputeVectorDotProduct(&Bloc_Matrix_A[index], Vector_X, VectorSize);
Bloc_Residue_Vector[irow] = value - Input_B[GlobalVectorIndex++];
}
}
/******************************************************************************/
Void
SolvePrecondMatrix(double *Bloc_Precond_Matrix, double *HVector,
double *Bloc_Residue_Vector, int Bloc_VectorSize)
{
/*...HVector = Bloc_Precond_Matrix inverse * Bloc_Residue_Vector.......*/
int index;
for(index=0; index<Bloc_VectorSize; index++){
HVector[index] = Bloc_Residue_Vector[index]/1.0;
}
}
答案 0 :(得分:1)
问题在于功能:
Void
SolvePrecondMatrix(double *Bloc_Precond_Matrix, double *HVector,
double *Bloc_Residue_Vector, int Bloc_VectorSize)
应该是:
void
SolvePrecondMatrix(double *Bloc_Precond_Matrix, double *HVector,
double *Bloc_Residue_Vector, int Bloc_VectorSize)
也就是说,您错误地将void
大写为Void
。