Actual source code: regressorimpl.h

  1: #pragma once

  3: #include <petscregressor.h>
  4: #include <petsc/private/petscimpl.h>

  6: PETSC_EXTERN PetscBool      PetscRegressorRegisterAllCalled;
  7: PETSC_EXTERN PetscErrorCode PetscRegressorRegisterAll(void);

  9: typedef struct _PetscRegressorOps *PetscRegressorOps;

 11: struct _PetscRegressorOps {
 12:   PetscErrorCode (*setup)(PetscRegressor);
 13:   PetscErrorCode (*setfromoptions)(PetscRegressor, PetscOptionItems); /* sets options from database */
 14:   PetscErrorCode (*settraining)(PetscRegressor, Mat, Vec);            /* set the training data matrix and targets */
 15:   PetscErrorCode (*fit)(PetscRegressor);                              /* compute the transformation to be applied */
 16:   PetscErrorCode (*predict)(PetscRegressor, Mat, Vec);                /* predict using fitted model */
 17:   PetscErrorCode (*destroy)(PetscRegressor);
 18:   PetscErrorCode (*reset)(PetscRegressor);
 19:   PetscErrorCode (*view)(PetscRegressor, PetscViewer);
 20: };

 22: /* Define the PetscRegressor data structure. */
 23: struct _p_PetscRegressor {
 24:   PETSCHEADER(struct _PetscRegressorOps);

 26:   PetscBool setupcalled; /* True if setup has been called */
 27:   PetscBool fitcalled;   /* True if the Fit() method has been called. */
 28:   void     *data;        /* Implementation-specific data */
 29:   Mat       training;    /* Matrix holding the training data set */
 30:   Vec       target;      /* Targets for training data (response variables or labels) */
 31:   Tao       tao;         /* Tao optimizer used by many regressor implementations */
 32:   PetscObjectParameterDeclare(PetscReal, regularizer_weight);
 33: };

 35: PETSC_EXTERN PetscLogEvent PetscRegressor_SetUp;
 36: PETSC_EXTERN PetscLogEvent PetscRegressor_Fit;
 37: PETSC_EXTERN PetscLogEvent PetscRegressor_Predict;