Matrix.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. NBA = 40
  8. NBI = 40
  9. NBB = 40
  10. def randComplex(nb):
  11. data = np.random.randn(2*nb)
  12. data = data/max(data)
  13. data_comp = data.view(dtype=np.complex128)
  14. return(data_comp)
  15. def asReal(a):
  16. #return(a.view(dtype=np.float64))
  17. return(a.reshape(np.size(a)).view(dtype=np.float64))
  18. def writeBinaryTests(config):
  19. NBSAMPLESA=NBA*NBI
  20. NBSAMPLESB=NBI*NBB
  21. data1=np.random.randn(NBSAMPLESA)
  22. data2=np.random.randn(NBSAMPLESB)
  23. data1 = data1/max(data1)
  24. data2 = data1/max(data2)
  25. data1C=randComplex(NBSAMPLESA)
  26. data2C=randComplex(NBSAMPLESB)
  27. config.writeInput(1, data1,"InputA")
  28. config.writeInput(1, data2,"InputB")
  29. config.writeInput(1, asReal(data1C),"InputAC")
  30. config.writeInput(1, asReal(data2C),"InputBC")
  31. def writeUnaryTests(config):
  32. NBSAMPLES=NBA*NBB
  33. data1=np.random.randn(NBSAMPLES)
  34. data1 = data1/max(data1)
  35. config.writeInput(1, data1,"InputA")
  36. PATTERNBINDIR = os.path.join("Patterns","DSP","Matrix","Binary","Binary")
  37. PARAMBINDIR = os.path.join("Parameters","DSP","Matrix","Binary","Binary")
  38. configBinaryf32=Tools.Config(PATTERNBINDIR,PARAMBINDIR,"f32")
  39. configBinaryq31=Tools.Config(PATTERNBINDIR,PARAMBINDIR,"q31")
  40. configBinaryq15=Tools.Config(PATTERNBINDIR,PARAMBINDIR,"q15")
  41. writeBinaryTests(configBinaryf32)
  42. writeBinaryTests(configBinaryq31)
  43. writeBinaryTests(configBinaryq15)
  44. PATTERNUNDIR = os.path.join("Patterns","DSP","Matrix","Unary","Unary")
  45. PARAMUNDIR = os.path.join("Parameters","DSP","Matrix","Unary","Unary")
  46. configUnaryf64=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"f64")
  47. configUnaryf32=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"f32")
  48. configUnaryq31=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"q31")
  49. configUnaryq15=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"q15")
  50. writeUnaryTests(configUnaryf64)
  51. writeUnaryTests(configUnaryf32)
  52. writeUnaryTests(configUnaryq31)
  53. writeUnaryTests(configUnaryq15)