maparm.h

来自「电力系统稀疏矩阵计算类,用法范例代码,包括三个目录,MALIB(类),MATES」· C头文件 代码 · 共 157 行

H
157
字号
#ifndef MAPARM#define MAPARM 1//************************************************************************// maparm - matrix operational parameters//************************************************************************struct gmatrixst
{
   int    item;                   
   struct orderst   *order_rowpt; 
   struct orderst   *orderpt;     
   struct gmatrixst *gmatrixpt;   
   double element;  
   
   //修正PQ分解法系数矩阵B'分解后的元素  mdn  04-11-10
   double xij;
};struct statest
{
   struct orderst *orderpt;     
   struct linkst  *linkpt;    //是state的linkpt 
   struct statest *anchorpt;    
   int connection_cnt;     //  连接数(与所含列数相等),节点度   
   int maamtrx_itm;        //  = mastatept->maamtrx_itm;
   int maamtrx_cnt;        //  = mastatept->maamtrx_cnt;      
   int stateitm;           //  行号    
   int cnt;                //  与connection_cnt意义相同,用于校核计算   
   struct
   {                              
      unsigned active      : 1; 
      unsigned hole        : 1; 
      unsigned zero_diag   : 1; 
      unsigned reorder     : 1; 
      unsigned fillin_zero : 1; 
      unsigned spare       :27; 
   } stat;
};
struct linkst
{
   struct  statest  *statept; 
   struct  orderst  *orderpt;
   struct  linkst   *linkpt; 
   double  element;   
   
   //支路电抗倒数  mdn  04-11-10
   double xij;
   //
};struct orderst
{
   int item;                  
   int mastate_itm;              
   struct
   {                           
      unsigned  active     :  1;  
      unsigned  spare      : 31;  
   } orderstat;
   double  diag;                  

   struct  maamtrxst  *cmtrxpt;   
   int     cmtrxcnt;              
   struct  gmatrixst  *gmatrixpt; 
   int     gmatrixcnt;            
   struct  gmatrixst  *gmatrix_colpt;      
   struct  gmatrixst  *gmatrix_last_colpt; 
    
   //修正PQ分解法用  mdn  04-11-11
   double  diag1;
   //

};

//matriangstruct workst
{
   int    singular_mastatept;     
   int    size;      
   char   *basept;    
   struct linkst    *linkpt;    
   struct orderst   *orderpt;   
   struct gmatrixst *gmatrixpt; 
   int    gmatrixitm;           
   struct gmatrixst *gmatrix_pt;
   struct linkst   *new_itempt; 
   struct linkst   *garbagept;  
   struct linkst   *headpt;     
   struct linkst   *tailpt;     
   int    nwork;                
   int    nflop;                
};
//optimstruct oporderst
{
   struct  opstatest  *statept;  
   int     orderitm;           
};
struct numconst   //存链表指针
{
   struct  oplinkst   *linkpt;  
};struct opworkst          //开辟临时空间用,仅一条记录
{
   int     off_diagonalpt;        
   struct  opstatest  *statept;     
   struct  oporderst  *orderpt;     
   struct  oplinkst   *linkpt;      
   struct  oplinkst   *garbagept;   
   struct  oporderst  *last_orderpt; 
   struct  oporderst  *skip_orderpt;
   int     off_diagonal;          
   int     num_zero_diagonal;  //零对角元素数    
   int     num_zero_fillin;    //    
   struct
   {                              
      unsigned int overflow  : 1; 
      unsigned int spare     :31; 
   }  stat;
};struct opstatest
{
   struct oporderst *orderpt;     
   struct oplinkst  *linkpt;    //是state的linkpt 
   struct opstatest *anchorpt;    
   int connection_cnt;     //  连接数(与所含列数相等),节点度   
   int maamtrx_itm;        //  = mastatept->maamtrx_itm;
   int maamtrx_cnt;        //  = mastatept->maamtrx_cnt;      
   int stateitm;           //  行号    
   int cnt;                //  与connection_cnt意义相同,用于校核计算   
   struct
   {                              
      unsigned active      : 1; 
      unsigned hole        : 1; 
      unsigned zero_diag   : 1; 
      unsigned reorder     : 1; 
      unsigned fillin_zero : 1; 
      unsigned spare       :27; 
   } stat;
};
struct oplinkst
{
   struct  opstatest  *statept; 
   struct  oplinkst   *linkpt; 
};#endif

⌨️ 快捷键说明

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