eLynx SDK
v3.3.0 C++ image processing API reference |
00001 //============================================================================ 00002 // IFunctionNL.h Math.Component package 00003 //============================================================================ 00004 // Usage : interface of non-linear function of n-variables and m-parameters 00005 // non-linearity is in the meaning of parameters, not variables 00006 // used as the input to non-linear function fitting 00007 //---------------------------------------------------------------------------- 00008 // Copyright (C) 2006 by eLynx project 00009 // 00010 // This library is free software; you can redistribute it and/or 00011 // modify it under the terms of the GNU Library General Public 00012 // License as published by the Free Software Foundation; either 00013 // version 2 of the License, or (at your option) any later version. 00014 // 00015 // This library is distributed in the hope that it will be useful, 00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00018 // See the GNU Library General Public License for more details. 00019 //---------------------------------------------------------------------------- 00020 #ifndef __IFunctionNL_h__ 00021 #define __IFunctionNL_h__ 00022 00023 #include <elx/math/IVector.h> 00024 00025 namespace eLynx { 00026 namespace Math { 00027 00038 class ExportedByMath IFunctionNL { 00039 00040 public: 00041 00043 virtual ~IFunctionNL() {} 00044 00047 virtual uint32 GetVariablesCount() const = 0; 00048 00053 virtual uint32 GetParametersCount() const = 0; 00054 00061 virtual double Evaluate(const IVector &iVars, 00062 const IVector &iParams) const = 0; 00063 00073 virtual double EvalDerivativeByParam(const IVector &iVars, 00074 const IVector &iParams, uint32 iByParam) const = 0; 00075 }; 00076 00077 } // namespace Math 00078 } // namespace eLynx 00079 00080 #endif //__IFunctionNL_h__