xref: /petsc/src/tao/leastsquares/impls/brgn/ftn-custom/zbrgnf.c (revision 8e85b1b3a48c719bb7d116aee5cfc4a5b180d411)
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