psn_common.h

来自「Finite Volume Poisson PDE Solver」· C头文件 代码 · 共 56 行

H
56
字号
#ifndef PSN_COMMON
#define PSN_COMMON


enum PSN_ERRCODES {
  PSN_ERR_OK,
  PSN_ERR_MEM,
  PSN_ERR_ARRAY
};

enum CSANMODE {
  smCol,
  smRow
};

enum BOUND{
  LOW,
  UP
};



typedef double* PSN_VECTOR;
typedef double** PSN_MATRIX;

PSN_VECTOR psn_vector_create(size_t col_num);
void psn_vector_free(PSN_VECTOR a);
#define psn_vector_getval(a,num)                  a[num]
#define psn_vector_setval(a,num,val)              a[num]=(val)

PSN_MATRIX psn_matrix_create(size_t row_num, size_t col_num);
void psn_matrix_free(PSN_MATRIX a, size_t col_num);
#define psn_matrix_getval(a,row,col)                  a[col][row]
#define psn_matrix_setval(a,row,col,val)              a[col][row]=(val)

#ifdef __MEX__
#include "mex.h"
PSN_MATRIX psn_matrix_create_from_mxArray(const mxArray* ar);
int psn_matrix_free_from_mxArray(PSN_MATRIX a);
#endif
void psn_matrix_get_rowcol(
           const size_t N,
           size_t num,
           int mode,   //1-row, 0-col
           PSN_MATRIX mat,
           PSN_VECTOR vec);
void psn_matrix_set_rowcol(const size_t N, size_t num,
           int mode,
           PSN_MATRIX mat,
           PSN_VECTOR vec);

double norm_vector(size_t N, PSN_VECTOR oldvec, PSN_VECTOR newvec);


#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?