CpuGenerators.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef MANDEL_CPUGENERATORS_H
  2. #define MANDEL_CPUGENERATORS_H
  3. #include "Generators.h"
  4. namespace mnd
  5. {
  6. class CpuGeneratorFloat;
  7. class CpuGeneratorDouble;
  8. class CpuGeneratorSse2Float;
  9. class CpuGeneratorSse2Double;
  10. class CpuGeneratorAvxFloat;
  11. class CpuGeneratorAvxDouble;
  12. class CpuGeneratorAvx512Float;
  13. class CpuGeneratorAvx512Double;
  14. }
  15. class mnd::CpuGeneratorFloat : public Generator
  16. {
  17. public:
  18. virtual void generate(const MandelInfo& info, float* data);
  19. };
  20. class mnd::CpuGeneratorDouble : public Generator
  21. {
  22. public:
  23. virtual void generate(const MandelInfo& info, float* data);
  24. };
  25. class mnd::CpuGeneratorSse2Float : public Generator
  26. {
  27. public:
  28. virtual void generate(const MandelInfo& info, float* data);
  29. };
  30. class mnd::CpuGeneratorSse2Double : public Generator
  31. {
  32. public:
  33. virtual void generate(const MandelInfo& info, float* data);
  34. };
  35. class mnd::CpuGeneratorAvxFloat : public Generator
  36. {
  37. public:
  38. virtual void generate(const MandelInfo& info, float* data);
  39. };
  40. class mnd::CpuGeneratorAvxDouble : public Generator
  41. {
  42. public:
  43. virtual void generate(const MandelInfo& info, float* data);
  44. };
  45. class mnd::CpuGeneratorAvx512Float : public Generator
  46. {
  47. public:
  48. virtual void generate(const MandelInfo& info, float* data);
  49. };
  50. class mnd::CpuGeneratorAvx512Double : public Generator
  51. {
  52. public:
  53. virtual void generate(const MandelInfo& info, float* data);
  54. };
  55. #endif // MANDEL_CPUGENERATORS_H