You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/Testing/PatternGeneration/Matrix.py

78 lines
2.0 KiB
Python

import os.path
import numpy as np
import itertools
import Tools
# Those patterns are used for tests and benchmarks.
# For tests, there is the need to add tests for saturation
NBA = 40
NBI = 40
NBB = 40
def randComplex(nb):
data = np.random.randn(2*nb)
data = data/max(data)
data_comp = data.view(dtype=np.complex128)
return(data_comp)
def asReal(a):
#return(a.view(dtype=np.float64))
return(a.reshape(np.size(a)).view(dtype=np.float64))
def writeBinaryTests(config):
NBSAMPLESA=NBA*NBI
NBSAMPLESB=NBI*NBB
data1=np.random.randn(NBSAMPLESA)
data2=np.random.randn(NBSAMPLESB)
data1 = data1/max(data1)
data2 = data1/max(data2)
data1C=randComplex(NBSAMPLESA)
data2C=randComplex(NBSAMPLESB)
config.writeInput(1, data1,"InputA")
config.writeInput(1, data2,"InputB")
config.writeInput(1, asReal(data1C),"InputAC")
config.writeInput(1, asReal(data2C),"InputBC")
def writeUnaryTests(config):
NBSAMPLES=NBA*NBB
data1=np.random.randn(NBSAMPLES)
data1 = data1/max(data1)
config.writeInput(1, data1,"InputA")
PATTERNBINDIR = os.path.join("Patterns","DSP","Matrix","Binary","Binary")
PARAMBINDIR = os.path.join("Parameters","DSP","Matrix","Binary","Binary")
configBinaryf32=Tools.Config(PATTERNBINDIR,PARAMBINDIR,"f32")
configBinaryq31=Tools.Config(PATTERNBINDIR,PARAMBINDIR,"q31")
configBinaryq15=Tools.Config(PATTERNBINDIR,PARAMBINDIR,"q15")
writeBinaryTests(configBinaryf32)
writeBinaryTests(configBinaryq31)
writeBinaryTests(configBinaryq15)
PATTERNUNDIR = os.path.join("Patterns","DSP","Matrix","Unary","Unary")
PARAMUNDIR = os.path.join("Parameters","DSP","Matrix","Unary","Unary")
configUnaryf64=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"f64")
configUnaryf32=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"f32")
configUnaryq31=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"q31")
configUnaryq15=Tools.Config(PATTERNUNDIR,PARAMUNDIR,"q15")
writeUnaryTests(configUnaryf64)
writeUnaryTests(configUnaryf32)
writeUnaryTests(configUnaryq31)
writeUnaryTests(configUnaryq15)