ICalc.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace FxpConvert.Common
  5. {
  6. public interface ICalc
  7. {
  8. public IAdd Add { get; }
  9. public ISubtract Subtract { get; }
  10. public IMultiply Multiply { get; }
  11. public IDivision Division { get; }
  12. public IFFT FFT { get; }
  13. public IArraySum Sum { get; }
  14. public void Fill(ref float result, float value, uint count);
  15. }
  16. public interface IArraySum
  17. {
  18. public float Sum(ref float value,uint count);
  19. public double Sum(ref double value,uint count);
  20. public float Rms(ref float value, uint count);
  21. public double Rms(ref double value,uint count);
  22. }
  23. public interface IFFT
  24. {
  25. public void FFT(double[] real, double[] imaginary);
  26. public void FFT(float[] real, float[] imaginary);
  27. }
  28. public interface IAdd
  29. {
  30. public void Add(ref float left, float right, uint count, ref float result);
  31. public void Add(ref float left, ref float right, uint count, ref float result);
  32. public void Add(ref float left, float right, uint count);
  33. public void Add(ref float left, ref float right, uint count);
  34. }
  35. public interface ISubtract
  36. {
  37. public void Subtract(ref float left, float right, uint count, ref float result);
  38. public void Subtract(ref float left, ref float right, uint count, ref float result);
  39. public void Subtract(ref float left, float right, uint count);
  40. public void Subtract(ref float left, ref float right, uint count);
  41. }
  42. public interface IMultiply
  43. {
  44. public void Multiply(ref float left, float right, uint count, ref float result);
  45. public void Multiply(ref float left, ref float right, uint count, ref float result);
  46. public void Multiply(ref float left, float right, uint count);
  47. public void Multiply(ref float left, ref float right, uint count);
  48. }
  49. public interface IDivision
  50. {
  51. public void Division(ref float left, float right, uint count, ref float result);
  52. public void Division(ref float left, ref float right, uint count, ref float result);
  53. public void Division(ref float left, float right, uint count);
  54. public void Division(ref float left, ref float right, uint count);
  55. }
  56. }