dsdpdualmat_impl.h

Go to the documentation of this file.
00001 #if !defined(__DSDP_DUALMATRIXOPS_H) 
00002 #define __DSDP_DUALMATRIXOPS_H
00003 
00013 struct  DSDPDualMat_Ops{
00014   int id;
00015   int (*matseturmat)(void*,double[],int,int); /* Set full array of values into matrix */
00016   int (*matgetarray)(void*,double*[],int*);   /* Set pointers to a dense array and its dimension */
00017   int (*matcholesky)(void*,int*);  /* Cholesky second argument is 0 for success, 1 otherwise */
00018   int (*matsolveforward)(void*,double[],double[],int); /* Called after Cholesky */
00019   int (*matsolvebackward)(void*,double[],double[],int); /* Called after Cholesky */
00020   int (*matinvert)(void*); /* Called after Cholesky factorization */
00021   int (*matinverseadd)(void*,double,double[],int,int); /* Add multiple of the inverse to array */
00022   int (*matinversemultiply)(void*,int[],int,double[],double[],int); /* Called after invert */
00023   int (*matforwardmultiply)(void*,double[],double[],int); /* Called after invert */
00024   int (*matbackwardmultiply)(void*,double[],double[],int); /* Called after invert */
00025   int (*matlogdet)(void*,double*); /* Called after Cholesky */
00026   int (*matfull)(void*,int*); /* Is fully dense or not? */
00027   int (*mattest)(void*);
00028   int (*matgetsize)(void*,int*);
00029   int (*matdestroy)(void*);
00030   int (*matview)(void*);
00031   const char *matname;
00032 };
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 extern int DSDPDualMatOpsInitialize(struct  DSDPDualMat_Ops*);
00038 #ifdef __cplusplus
00039 }
00040 #endif
00041 
00042 #endif
00043 
00044 

Generated on Mon Nov 30 20:17:33 2009 for DSDP by  doxygen 1.6.1