jacobian.h
Go to the documentation of this file.
1 #ifndef JACOBIANH
2 #define JACOBIANH
3 
4 #include "variables.h"
5 #include "equations.h"
6 #include "csmapping.h"
7 
8 #include <stdio.h>
9 
27 typedef struct {
30  unsigned int neqs;
31  unsigned int nvars;
34 } TJacobian;
35 
46 
57 
68 
77 void CopyJacobian(TJacobian *j_dst,TJacobian *j_src);
78 
92 void CopyNonDynamicsJacobian(TJacobian *j_dstP,TJacobian *j_dstO,
93  TJacobian *j_src);
94 
104 void CopyPositionJacobian(TJacobian *j_dst,
105  TJacobian *j_src);
106 
116 void GetJacobianSize(unsigned int *nr,unsigned int *nc,TJacobian *j);
117 
129 Tequations *GetJacobianColumn(unsigned int nv,TJacobian *J);
130 
141 Tequation *GetJacobianEquation(unsigned int r,unsigned int c,TJacobian *j);
142 
155 
173 void JacobianLinearCombination(boolean *selectedVars,unsigned int *nv,
174  Tequations *eqs,TJacobian *j);
175 
184 void AllocateJacobianEvaluation(double ***m,TJacobian *j);
185 
195 void EvaluateJacobian(double *v,double **m,TJacobian *j);
196 
209 void EvaluateJacobianInVector(double *v,
210  unsigned int nr,unsigned int nc,double *m,TJacobian *j);
211 
227 void EvaluateJacobianSubSetInVector(double *v,boolean *sr,
228  unsigned int nr,unsigned int nc,double *m,TJacobian *j);
229 
244  unsigned int nr,unsigned int nc,double *m,TJacobian *j);
245 
261 void EvaluateTransposedJacobianSubSetInVector(double *v,boolean *sr,
262  unsigned int nr,unsigned int nc,double *m,TJacobian *j);
263 
273 void PrintJacobianEvaluation(FILE *f,double **m,TJacobian *j);
274 
284 void FreeJacobianEvaluation(double **m,TJacobian *j);
285 
322 void EvaluateJacobianXVectors(double *p,
323  unsigned int n,unsigned int ng,unsigned int *g,double *v,
324  unsigned int *nr,unsigned int *nc,double ***m,
325  TJacobian *j);
326 
336 void PrintJacobian(FILE *f,char **varNames,TJacobian *j);
337 
345 void DeleteJacobian(TJacobian *j);
346 
347 #endif