1 #include <petsc/private/fortranimpl.h> 2 #include <petsc/private/f90impl.h> 3 #include <petsc/private/taoimpl.h> 4 5 #if defined(PETSC_HAVE_FORTRAN_CAPS) 6 #define taobrgngetsubsolver_ TAOBRGNGETSUBSOLVER 7 #define taobrgnsetl1regularizerweight_ TAOBRGNSETL1REGULARIZERWEIGHT 8 #define taobrgnsetl1smoothepsilon_ TAOBRGNSETL1SMOOTHEPSILON 9 #define taobrgnsetdictionarymatrix_ TAOBRGNSETDICTIONARYMATRIX 10 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 11 #define taobrgngetsubsolver_ taobrgngetsubsolver 12 #define taobrgnsetl1regularizerweight_ taobrgnsetl1regularizerweight 13 #define taobrgnsetl1smoothepsilon_ taobrgnsetl1smoothepsilon 14 #define taobrgnsetdictionarymatrix_ taobrgnsetdictionarymatrix 15 #endif 16 17 PETSC_EXTERN void PETSC_STDCALL taobrgngetsubsolver_(Tao *tao, Tao *subsolver, PetscErrorCode *ierr) 18 { 19 if(!*ierr) *ierr = TaoBRGNGetSubsolver(*tao, subsolver); 20 } 21 22 PETSC_EXTERN void PETSC_STDCALL taobrgnsetl1regularizerweight_(Tao *tao, PetscReal *lambda, PetscErrorCode *ierr) 23 { 24 if(!*ierr) *ierr = TaoBRGNSetL1RegularizerWeight(*tao, *lambda); 25 } 26 27 PETSC_EXTERN void PETSC_STDCALL taobrgnsetl1smoothepsilon_(Tao *tao, PetscReal *epsilon, PetscErrorCode *ierr) 28 { 29 if(!*ierr) *ierr = TaoBRGNSetL1SmoothEpsilon(*tao, *epsilon); 30 } 31 32 PETSC_EXTERN void PETSC_STDCALL taobrgnsetdictionarymatrix(Tao *tao, Mat *dict, PetscErrorCode *ierr) 33 { 34 if(!*ierr) *ierr = TaoBRGNSetDictionaryMatrix(*tao, *dict); 35 } 36