Commit | Line | Data |
---|---|---|

42cf5bc1 | 1 | // Created on: 1991-05-06 |

2 | // Created by: Laurent PAINNOT | |

3 | // Copyright (c) 1991-1999 Matra Datavision | |

4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS | |

5 | // | |

6 | // This file is part of Open CASCADE Technology software library. | |

7 | // | |

8 | // This library is free software; you can redistribute it and/or modify it under | |

9 | // the terms of the GNU Lesser General Public License version 2.1 as published | |

10 | // by the Free Software Foundation, with special exception defined in the file | |

11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |

12 | // distribution for complete text of the license and disclaimer of any warranty. | |

13 | // | |

14 | // Alternatively, this file may be used under the terms of Open CASCADE | |

15 | // commercial license or contractual agreement. | |

16 | ||

17 | #ifndef _math_Function_HeaderFile | |

18 | #define _math_Function_HeaderFile | |

19 | ||

20 | #include <Standard.hxx> | |

21 | #include <Standard_DefineAlloc.hxx> | |

22 | #include <Standard_Handle.hxx> | |

23 | ||

24 | #include <Standard_Boolean.hxx> | |

25 | #include <Standard_Real.hxx> | |

26 | #include <Standard_Integer.hxx> | |

27 | ||

28 | ||

29 | //! This abstract class describes the virtual functions | |

30 | //! associated with a Function of a single variable. | |

31 | class math_Function | |

32 | { | |

33 | public: | |

34 | ||

35 | DEFINE_STANDARD_ALLOC | |

36 | ||

6928e351 | 37 | //! Virtual destructor, for safe inheritance |

38 | virtual ~math_Function () {} | |

42cf5bc1 | 39 | |

40 | //! Computes the value of the function <F> for a given value of | |

41 | //! variable <X>. | |

42 | //! returns True if the computation was done successfully, | |

43 | //! False otherwise. | |

44 | Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real X, Standard_Real& F) = 0; | |

45 | ||

46 | //! returns the state of the function corresponding to the | |

47 | //! latest call of any methods associated with the function. | |

48 | //! This function is called by each of the algorithms | |

49 | //! described later which defined the function Integer | |

50 | //! Algorithm::StateNumber(). The algorithm has the | |

51 | //! responsibility to call this function when it has found | |

52 | //! a solution (i.e. a root or a minimum) and has to maintain | |

53 | //! the association between the solution found and this | |

54 | //! StateNumber. | |

55 | //! Byu default, this method returns 0 (which means for the | |

56 | //! algorithm: no state has been saved). It is the | |

57 | //! responsibility of the programmer to decide if he needs | |

58 | //! to save the current state of the function and to return | |

59 | //! an Integer that allows retrieval of the state. | |

60 | Standard_EXPORT virtual Standard_Integer GetStateNumber(); | |

42cf5bc1 | 61 | }; |

62 | ||

42cf5bc1 | 63 | #endif // _math_Function_HeaderFile |