xref: /petsc/src/ml/regressor/interface/dlregisregressor.c (revision ccfb0f9f40a0131988d7995ed9679700dae2a75a)
1 #include <petsc/private/regressorimpl.h>
2 
3 static PetscBool PetscRegressorPackageInitialized = PETSC_FALSE;
4 
5 /*@C
6   PetscRegressorInitializePackage - Initialize `PetscRegressor` package
7 
8   Logically Collective
9 
10   Level: developer
11 
12 .seealso: `PetscRegressorFinalizePackage()`
13 @*/
14 PetscErrorCode PetscRegressorInitializePackage(void)
15 {
16   PetscFunctionBegin;
17   if (PetscRegressorPackageInitialized) PetscFunctionReturn(PETSC_SUCCESS);
18   PetscRegressorPackageInitialized = PETSC_TRUE;
19   /* Register Class */
20   PetscCall(PetscClassIdRegister("Regressor", &PETSCREGRESSOR_CLASSID));
21   /* Register Constructors */
22   PetscCall(PetscRegressorRegisterAll());
23   /* Register Events */
24   PetscCall(PetscLogEventRegister("PetscRegressorSetUp", PETSCREGRESSOR_CLASSID, &PetscRegressor_SetUp));
25   PetscCall(PetscLogEventRegister("PetscRegressorFit", PETSCREGRESSOR_CLASSID, &PetscRegressor_Fit));
26   PetscCall(PetscLogEventRegister("PetscRegressorPredict", PETSCREGRESSOR_CLASSID, &PetscRegressor_Predict));
27   /* Process Info */
28   {
29     PetscClassId classids[1];
30 
31     classids[0] = PETSCREGRESSOR_CLASSID;
32     PetscCall(PetscInfoProcessClass("petscregressor", 1, classids));
33   }
34   /* Register package finalizer */
35   PetscCall(PetscRegisterFinalize(PetscRegressorFinalizePackage));
36   PetscFunctionReturn(PETSC_SUCCESS);
37 }
38 
39 /*@C
40   PetscRegressorFinalizePackage - Finalize `PetscRegressor` package; it is called from `PetscFinalize()`
41 
42   Logically Collective
43 
44   Level: developer
45 
46 .seealso: `PetscRegressorInitializePackage()`
47 @*/
48 PetscErrorCode PetscRegressorFinalizePackage(void)
49 {
50   PetscFunctionBegin;
51   PetscCall(PetscFunctionListDestroy(&PetscRegressorList));
52   PetscRegressorPackageInitialized = PETSC_FALSE;
53   PetscRegressorRegisterAllCalled  = PETSC_FALSE;
54   PetscFunctionReturn(PETSC_SUCCESS);
55 }
56