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