English Français

Documentation / Manuel développeur

Modules disponibles

Calibration,  DataServer,  Launcher,  MetaModelOptim,  Modeler,  Optimizer,  ReLauncher,  Reliability,  ReOptimizer,  Sampler,  Sensitivity,  UncertModeler,  XmlProblem,   Uranie / ReLauncher: TCJitEval.h Source File
Uranie / ReLauncher  v4.10.0
/* @license-end */
TCJitEval.h
Go to the documentation of this file.
1 // Copyright (C) 2013-2024 CEA/DES
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or any
7 // later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
18 // $Id$
19 // $Author$
20 // $Date$
21 // $Revision 1.2 $
22 // $State$
24 
32 #ifndef __TCJITEVAL__
33 #define __TCJITEVAL__
34 
35 #include <functional>
36 
37 //ROOT
38 #include "Rtypes.h"
39 
40 //URANIE
41 #include "Relauncher.h"
42 #include "TStandardEval.h"
43 
44 namespace URANIE
45 {
46 namespace Relauncher
47 {
48 
49 class TCJitEval: public TSimpleEval
50 {
51 protected:
52  enum {proc, func, ferm, hard, fonc, harf} _typ;
53  union {
54  int (*func)(double*, double*);
55  void (*proc)(double*, double*);
56  int (*ferm)(double*, double*, void*);
57  int (*hard)(vector<URANIE::DataServer::UEntry*> *,vector<URANIE::DataServer::UEntry*> *);
58  std::function<int(double*, double*)> *fonc;
59  std::function<int(vector<URANIE::DataServer::UEntry*>*,vector<URANIE::DataServer::UEntry*>*)> *harf;
60  } _p;
61  void *_extra;
62 
63 public:
64  TCJitEval(int (*)(double *, double*));
65  TCJitEval(void (*)(double *, double*));
66  TCJitEval(int (*)(double*, double*, void*), void*);
67  TCJitEval(int (*)(vector<URANIE::DataServer::UEntry*> *, vector<URANIE::DataServer::UEntry*>*));
68  TCJitEval(std::function<int(double*, double*)> *);
69  TCJitEval(std::function<int(vector<URANIE::DataServer::UEntry*>*,vector<URANIE::DataServer::UEntry*>*)> *);
70  virtual ~TCJitEval();
71  int eval(std::vector<URANIE::DataServer::UEntry*>*, std::vector<URANIE::DataServer::UEntry*>*, int =0 );
72 
73  ClassDef(URANIE::Relauncher::TCJitEval, ID_RELAUNCHER)
74 };
75 
76 
77 }
78 } //namespace
79 
80 #endif
81 
Definition: TBaseEval.cxx:44
virtual ~TCJitEval()
Definition: TCJitEval.cxx:79
int(* func)(double *, double *)
Definition: TCJitEval.h:54
Definition: TStandardEval.h:59
simple eval shared class
Definition: TCJitEval.h:49
Definition: TCJitEval.h:52
int(* hard)(vector< URANIE::DataServer::UEntry *> *, vector< URANIE::DataServer::UEntry *> *)
Definition: TCJitEval.h:57
TCJitEval(int(*)(double *, double *))
Definition: TCJitEval.cxx:48
union URANIE::Relauncher::TCJitEval::@1 _p
void(* proc)(double *, double *)
Definition: TCJitEval.h:55
int(* ferm)(double *, double *, void *)
Definition: TCJitEval.h:56
void * _extra
Definition: TCJitEval.h:61
std::function< int(double *, double *)> * fonc
Definition: TCJitEval.h:58
int eval(std::vector< URANIE::DataServer::UEntry *> *, std::vector< URANIE::DataServer::UEntry *> *, int=0)
Definition: TCJitEval.cxx:83
enum URANIE::Relauncher::TCJitEval::@0 _typ
std::function< int(vector< URANIE::DataServer::UEntry * > *, vector< URANIE::DataServer::UEntry * > *)> * harf
Definition: TCJitEval.h:59