BasicMaths.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import os.path
  2. import numpy as np
  3. import itertools
  4. import Tools
  5. # Those patterns are used for tests and benchmarks.
  6. # For tests, there is the need to add tests for saturation
  7. def writeTests(config):
  8. NBSAMPLES=256
  9. data1=np.random.randn(NBSAMPLES)
  10. data2=np.random.randn(NBSAMPLES)
  11. data3=np.random.randn(1)
  12. data1 = data1/max(data1)
  13. data2 = data1/max(data2)
  14. config.writeInput(1, data1)
  15. config.writeInput(2, data2)
  16. ref = data1 + data2
  17. config.writeReference(1, ref)
  18. ref = data1 - data2
  19. config.writeReference(2, ref)
  20. ref = data1 * data2
  21. config.writeReference(3, ref)
  22. ref = -data1
  23. config.writeReference(4, ref)
  24. ref = data1 + 0.5
  25. config.writeReference(5, ref)
  26. ref = data1 * 0.5
  27. config.writeReference(6, ref)
  28. nb = 3
  29. ref = np.array([np.dot(data1[0:nb] ,data2[0:nb])])
  30. config.writeReference(7, ref)
  31. nb = 8
  32. ref = np.array([np.dot(data1[0:nb] ,data2[0:nb])])
  33. config.writeReference(8, ref)
  34. nb = 9
  35. ref = np.array([np.dot(data1[0:nb] ,data2[0:nb])])
  36. config.writeReference(9, ref)
  37. ref = abs(data1)
  38. config.writeReference(10, ref)
  39. ref = np.array([np.dot(data1 ,data2)])
  40. config.writeReference(11, ref)
  41. PATTERNDIR = os.path.join("Patterns","DSP","BasicMaths","BasicMaths")
  42. PARAMDIR = os.path.join("Parameters","DSP","BasicMaths","BasicMaths")
  43. configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
  44. configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31")
  45. configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15")
  46. configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7")
  47. writeTests(configf32)
  48. writeTests(configq31)
  49. writeTests(configq15)
  50. writeTests(configq7)
  51. # Params just as example
  52. someLists=[[1,3,5],[1,3,5],[1,3,5]]
  53. r=np.array([element for element in itertools.product(*someLists)])
  54. configf32.writeParam(1, r.reshape(81))