Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from __future__ import print_function, absolute_import
  4.  
  5. import abc
  6. import types
  7. import numpy as np
  8.  
  9. class FitFunction(object):
  10.  
  11. def __init__(self, python_function):
  12.  
  13. assert isinstance(python_function, types.FunctionType)
  14. self._py_function = python_function
  15.  
  16. @abc.abstractmethod
  17. def pretty_string(self):
  18. r"""
  19. Return some pretty string.
  20. """
  21.  
  22.  
  23. class Gaussian(FitFunction):
  24.  
  25.  
  26. def __init__(self):
  27.  
  28. def gaussian(x, mu, sigma, A):
  29. coeff = (_np.sqrt(2.0 * _np.pi) * sigma)**(-1.0)
  30. arg = -.5 * (((x - mu) / sigma)**2.0)
  31. return A * coeff * _np.exp(arg)
  32.  
  33. FitFunction.__init__(self, gaussian)
  34.  
  35. @staticmethod
  36. def pretty_string():
  37. return "1D Gaussian"
  38.  
  39.  
  40. if __name__ == "__main__":
  41.  
  42. print("Gaussian.pretty_string: %s" % Gaussian().pretty_string)
  43.  
  44. me$ ./FitFunction_SO_test.py
  45. Gaussian.pretty_string: <bound method Gaussian.pretty_string of <__main__.Gaussian object at 0x1005e2f90>>
  46.  
  47. me$ ./FitFunction_SO_test.py
  48. Gaussian.pretty_string: "1D Gaussian"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement