#!/bin/sh

# Test SP routines
#
# $Id: tSProutines 1.12 1998/07/06 libtsp-v3r0 $

echo ""
echo "========== tSPcFFT42"
tSPcFFT42 1 2 3 1 2 3	2>&1
echo "-----"
tSPcFFT42			2>&1
echo "-----"
tSPcFFT42 1 2
echo "-----"
tSPcFFT42 2 4 -2 -4
echo "-----"
tSPcFFT42 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \
	-16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
echo "-----"
tSPcFFT42 1 2 3 4 5 6 7 8 \
	-8 -7 -6 -5 -4 -3 -2 -1

echo ""
echo "========== tSPcorXXX"
tSPcorXXX 5 0 0 0 0 0 0 0 0 0				2>&1
echo "-----"
tSPcorXXX 5 0 0 0 0 0 196 347 389 102 -100
echo "-----"
tSPcorXXX 5 2201 990 21 2 -423 0 0 0 0 0
echo "-----"
tSPcorXXX 5 2201 990 21 2 -423 -1524 0 0 0 0 0
echo "-----"
tSPcorXXX 5 2201 990 21 2 -423 -1524 -1881 0 0 0 0 0
echo "-----"
tSPcorXXX 5 \
11	86	190	197	44	-8	121	141 \
-37	8	400	684	812	922	1079	1390 \
1548	1595	1840	2188	2355	2062	1766	995 \
-1117	-2506	-2462	-3189	-4148	-3734	-2683	-1970 \
-1281	-328	332	805	885	-97	-679	-347 \
-944	-2027	-1757	-942	-885	-775	-155	377 \
698	717	520	556	751	503	136	395 \
611	451	407	510	724	817	1044	1505 \
1692	1885	2419	3049	3329	3902	4692	4408 \
3310	-271	-4835	-4525	-3358	-5947	-6870	-4241 \
-1558	-235	578	1591	2828	3754	2602	332 \
-442	-880	-2391	-3729	-3646	-2673	-1722	-885 \
-118	1014	2199	2201	990	21	2	-423 \
-1524	-1881	-1226	-416	-83	87	493	1074 \
1157	495	196	347	389	102	-100	400 \
729	832	863	944	1640	2228	2765	2900 \
3777	5351	4937	4017	-1242	-7973	-4443	-1854 \
-7091	-7310	-3334	107	2626	2562	2223	3118 \
4587	2758	-2141	-3291	-2377	-3134	-3811	-3503 \
-1721	603	1898	1983	1949	2794	2364	76 \
-1392	-1944	-2745	-2929	-2049	-1315	-451	994 \
1415	1093	1173	1014	370	-288	-373	-274 \
-177	296	325	517	1078	1011	604	131 \
602	1280	1877	3068	3209	4194	5195	5004 \
3015	-5937	-8777	-1037	-3005	-8065	-5037	-1610

echo ""
echo "========== tSPcovXXX"
tSPcovXXX 5 0 0 0 0 0 196 347 389 102 -100		2>&1
echo "-----"
tSPcovXXX 5 2201 990 21 2 -423 0 0 0 0 0
echo "-----"
tSPcovXXX 5 2201 990 21 2 -423 -1524 0 0 0 0 0
echo "-----"
tSPcovXXX 5 2201 990 21 2 -423 -1524 -1881 0 0 0 0 0
echo "-----"
tSPcovXXX 5 \
11	86	190	197	44	-8	121	141 \
-37	8	400	684	812	922	1079	1390 \
1548	1595	1840	2188	2355	2062	1766	995 \
-1117	-2506	-2462	-3189	-4148	-3734	-2683	-1970 \
-1281	-328	332	805	885	-97	-679	-347 \
-944	-2027	-1757	-942	-885	-775	-155	377 \
698	717	520	556	751	503	136	395 \
611	451	407	510	724	817	1044	1505 \
1692	1885	2419	3049	3329	3902	4692	4408 \
3310	-271	-4835	-4525	-3358	-5947	-6870	-4241 \
-1558	-235	578	1591	2828	3754	2602	332 \
-442	-880	-2391	-3729	-3646	-2673	-1722	-885 \
-118	1014	2199	2201	990	21	2	-423 \
-1524	-1881	-1226	-416	-83	87	493	1074 \
1157	495	196	347	389	102	-100	400 \
729	832	863	944	1640	2228	2765	2900 \
3777	5351	4937	4017	-1242	-7973	-4443	-1854 \
-7091	-7310	-3334	107	2626	2562	2223	3118 \
4587	2758	-2141	-3291	-2377	-3134	-3811	-3503 \
-1721	603	1898	1983	1949	2794	2364	76 \
-1392	-1944	-2745	-2929	-2049	-1315	-451	994 \
1415	1093	1173	1014	370	-288	-373	-274 \
-177	296	325	517	1078	1011	604	131 \
602	1280	1877	3068	3209	4194	5195	5004 \
3015	-5937	-8777	-1037	-3005	-8065	-5037	-1610

echo ""
echo "========== tSPfDCT"
tSPfDCT 1 2 3 4 5 6 7 8
echo "-----"
tSPfDCT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

echo ""
echo "========== tSPlpcXXdist"
tSPlpcXXdist IS R -0.8 0.7 -0.6 0.9 \
	-0.8 0.7 -0.6 0.3
echo "-----"
tSPlpcXXdist LS R -0.8 0.7 -0.6 0.9 \
	-0.8 0.7 -0.6 0.3

echo ""
echo "========== tSPquant"
tSPquant -0.5 0.0 0.5 1.0 1.5 2.0 2.5

echo ""
echo "========== tSPrFFT"
tSPrFFT 1 2 3 1 2 3		2>&1
echo "-----"
tSPrFFT			2>&1
echo "-----"
tSPrFFT 1 2
echo "-----"
tSPrFFT 2 4 -2 -4
echo "-----"
tSPrFFT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
echo "-----"
tSPrFFT 1 2 3 4 5 6 7 8

echo ""
echo "========== tSPxxxBWexp"
tSPxxxBWexp P 0.990 1 1 1 1 1 1 1 1 1 1
tSPxxxBWexp C 0.005 1 1 1 1 1 1 1 1 1 1		# Example 40 Hz / 8000 Hz
						# from Tohkura paper

echo ""
echo "========== tSPxxXxx"
tSPxxXxx KL -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899	# Example from Markel & Gray book
echo "-----"
tSPxxXxx LL 0.24349 0.34452 0.55549 0.73805 0.96348 \
	1.8056 2.3296 2.5059
echo "-----"
tSPxxXxx KL -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899 0.1
echo "-----"
tSPxxXxx LL 0.23434 0.33177 0.51485 0.70444 0.87249 \
	1.3363 2.1114 2.3654 2.5776
echo "-----"
					# Problem case before fix to SPpcXlsf
tSPxxXxx PL 2.62918997 -2.67681408 1.48056543 -1.23077011 1.37066925 \
	-0.46167797 -0.64675629  0.76032758 -0.38052383  0.10449921
echo "-----"
					# Problem case for SPpcXlsf
# 200 sample Hamming window, bandwidth expansion 0.99, 1000 Hz test tone input
# 3 LSF's very close together
tSPxxXxx AL 1 -1.4798145 1.0972879 0.066764936 0.049340438 -0.042204477 \
	0.025575416 -0.0027978565 0.0092505114  0.154108 -0.21532319	2>&1
echo "-----"
tSPxxXxx PL 0 0 0 0
echo "-----"
tSPxxXxx PL 0 0 0 0 0
echo "-----"
tSPxxXxx KL -1 1		2>&1
echo "-----"
tSPxxXxx KL -1 1 1 1 1		2>&1
echo "-----"
	# Test uniformly spaced LSF's  (LSF to PC's).  These should give a
	# min-phase set of PC's.  Did not for single precision computations
	# inside SPlsfXpc (fixed by using double precision).
tSPxxXxx LP	0.0766	0.1532	0.2299	0.3065	0.3831 \
		0.4597	0.5364	0.6130	0.6896	0.7662 \
		0.8429	0.9195	0.9961	1.0727	1.1494 \
		1.2260	1.3026	1.3792	1.4559	1.5325 \
		1.6091	1.6857	1.7624	1.8390	1.9156 \
		1.9922	2.0689	2.1455	2.2221	2.2987 \
		2.3754	2.4520	2.5286	2.6052	2.6818 \
		2.7585	2.8351	2.9117	2.9883	3.0650

echo "-----"
echo "-----"

tSPxxXxx RP 0 0 0 0 0			# Zero energy frame
echo "-----"
tSPxxXxx RP -1 0 0 0 0		2>&1	# Negative energy frame
echo "-----"
tSPxxXxx RP 0 1 0 0 0		2>&1	# Non-positive definite
echo "-----"
tSPxxXxx RP 1 0.5 2 0 0		2>&1	# Non-positive definite
echo "-----"
tSPxxXxx AR 1 -0.45 0.81 0	# Example from Markel & Gray book
tSPxxXxx KR -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899
echo "-----"
tSPxxXxx RK 1 0.94217 0.78392 0.55975 0.313 \
	0.083241 -0.10647 -0.24746 -0.34267
echo "-----"
tSPxxXxx KR -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899 0
echo "-----"
tSPxxXxx KR -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899 0.1

echo "-----"
echo "-----"

tSPxxXxx AK 1 -0.45 0.81 0	# Example from Markel & Gray book
tSPxxXxx KK -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899
echo "-----"
tSPxxXxx KP -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899
echo "-----"
tSPxxXxx KA -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899
echo "-----"
tSPxxXxx KK -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899 0.1

echo "-----"
echo "-----"

tSPxxXxx PA 0.4 0.3
tSPxxXxx AP 1 -0.5 -0.2 -0.1

echo "-----"
echo "-----"

tSPxxXxx AC 1 -0.45 0.81 0	# Example from Markel & Gray book
tSPxxXxx KC -0.94217 0.92386 -0.56198 -0.09454 0.20218 \
	0.53595 -0.32922 -0.05899
tSPxxXxx CK 0.0 2.3464 1.0959 0.42437 -0.48069 \
	0.0089414 -0.14328 -0.092443 0.10007
