IterationGenerator.h 860 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef MANDEL_ITERATIONGENERATOR_H
  2. #define MANDEL_ITERATIONGENERATOR_H
  3. #include "Generators.h"
  4. #include "IterationFormula.h"
  5. #include <utility>
  6. #include <complex>
  7. namespace mnd
  8. {
  9. class IterationGenerator;
  10. class NaiveGenerator;
  11. }
  12. class mnd::IterationGenerator : public mnd::MandelGenerator
  13. {
  14. protected:
  15. IterationFormula itf;
  16. public:
  17. IterationGenerator(IterationFormula itf, const mnd::Real& prec);
  18. };
  19. class mnd::NaiveGenerator : public mnd::IterationGenerator
  20. {
  21. public:
  22. NaiveGenerator(IterationFormula itf, const mnd::Real& prec);
  23. virtual void generate(const MandelInfo& info, float* data);
  24. private:
  25. std::complex<double> iterate(std::complex<double> z, std::complex<double> c);
  26. std::complex<double> calc(mnd::Expression& expr, std::complex<double> z, std::complex<double> c);
  27. };
  28. #endif // MANDEL_ITERATIONGENERATOR_H