# Copyright (c) 2018-2021, Carnegie Mellon University
# See LICENSE for details

2ddft_1 := function()
	HDLSynthesize(stream2DDFT(4, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT4_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(4, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT4_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(4, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT4_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(4, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT4_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(4, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT4_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(4, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT4_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(4, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT4_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(4, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT4_4_4_1_2_16bits");

end;

2ddft_2 := function()
	HDLSynthesize(stream2DDFT(8, 2, 4, 1, 3), 1, 0, 16, 380, 1,"2DDFT8_2_2_3_1_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 4, 2, 3), 1, 0, 16, 380, 1,"2DDFT8_2_2_3_2_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT8_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT8_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 8, 1, 3), 1, 0, 16, 380, 1,"2DDFT8_2_4_3_1_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 8, 2, 3), 1, 0, 16, 380, 1,"2DDFT8_2_4_3_2_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT8_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT8_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT8_2_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT8_2_8_3_2_16bits");

end;

2ddft_3 := function()
	HDLSynthesize(stream2DDFT(8, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT8_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(8, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT8_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(8, 8, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT8_8_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(8, 8, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT8_8_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 4, 1, 4), 1, 0, 16, 380, 1,"2DDFT16_2_2_4_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 4, 2, 4), 1, 0, 16, 380, 1,"2DDFT16_2_2_4_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 4, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_2_2_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 4, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_2_2_2_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_2_2_1_2_16bits");

end;

2ddft_4 := function()
	HDLSynthesize(stream2DDFT(16, 2, 8, 1, 4), 1, 0, 16, 380, 1,"2DDFT16_2_4_4_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 8, 2, 4), 1, 0, 16, 380, 1,"2DDFT16_2_4_4_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 16, 1, 4), 1, 0, 16, 380, 1,"2DDFT16_2_8_4_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 16, 2, 4), 1, 0, 16, 380, 1,"2DDFT16_2_8_4_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_2_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_2_8_2_2_16bits");

end;

2ddft_5 := function()
	HDLSynthesize(stream2DDFT(16, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 32, 1, 4), 1, 0, 16, 380, 1,"2DDFT16_2_16_4_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 32, 2, 4), 1, 0, 16, 380, 1,"2DDFT16_2_16_4_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_2_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_2_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_4_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_4_4_2_2_16bits");

end;

2ddft_6 := function()
	HDLSynthesize(stream2DDFT(16, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_4_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_4_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_4_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_4_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_4_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT16_4_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT16_4_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_4_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 4, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_4_16_1_2_16bits");

end;

2ddft_7 := function()
	HDLSynthesize(stream2DDFT(16, 16, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT16_16_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(16, 16, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT16_16_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 4, 1, 5), 1, 0, 16, 380, 1,"2DDFT32_2_2_5_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 4, 2, 5), 1, 0, 16, 380, 1,"2DDFT32_2_2_5_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT32_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT32_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 8, 1, 5), 1, 0, 16, 380, 1,"2DDFT32_2_4_5_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 8, 2, 5), 1, 0, 16, 380, 1,"2DDFT32_2_4_5_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT32_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT32_2_4_1_2_16bits");

end;

2ddft_8 := function()
	HDLSynthesize(stream2DDFT(32, 2, 16, 1, 5), 1, 0, 16, 380, 1,"2DDFT32_2_8_5_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 16, 2, 5), 1, 0, 16, 380, 1,"2DDFT32_2_8_5_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT32_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT32_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 32, 1, 5), 1, 0, 16, 380, 1,"2DDFT32_2_16_5_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 32, 2, 5), 1, 0, 16, 380, 1,"2DDFT32_2_16_5_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT32_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT32_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 64, 1, 5), 1, 0, 16, 380, 1,"2DDFT32_2_32_5_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 64, 2, 5), 1, 0, 16, 380, 1,"2DDFT32_2_32_5_2_16bits");

end;

2ddft_9 := function()
	HDLSynthesize(stream2DDFT(32, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT32_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(32, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT32_2_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(32, 32, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT32_32_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(32, 32, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT32_32_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 1, 6), 1, 0, 16, 380, 1,"2DDFT64_2_2_6_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 2, 6), 1, 0, 16, 380, 1,"2DDFT64_2_2_6_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_2_2_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_2_2_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_2_2_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_2_2_2_2_16bits");

end;

2ddft_10 := function()
	HDLSynthesize(stream2DDFT(64, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 1, 6), 1, 0, 16, 380, 1,"2DDFT64_2_4_6_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 2, 6), 1, 0, 16, 380, 1,"2DDFT64_2_4_6_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_2_4_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_2_4_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_2_4_1_2_16bits");

end;

2ddft_11 := function()
	HDLSynthesize(stream2DDFT(64, 2, 16, 1, 6), 1, 0, 16, 380, 1,"2DDFT64_2_8_6_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 2, 6), 1, 0, 16, 380, 1,"2DDFT64_2_8_6_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_2_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_2_8_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_2_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_2_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 1, 6), 1, 0, 16, 380, 1,"2DDFT64_2_16_6_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 2, 6), 1, 0, 16, 380, 1,"2DDFT64_2_16_6_2_16bits");

end;

2ddft_12 := function()
	HDLSynthesize(stream2DDFT(64, 2, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_2_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_2_16_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_2_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_2_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 1, 6), 1, 0, 16, 380, 1,"2DDFT64_2_32_6_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 2, 6), 1, 0, 16, 380, 1,"2DDFT64_2_32_6_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_2_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_2_32_3_2_16bits");

end;

2ddft_13 := function()
	HDLSynthesize(stream2DDFT(64, 2, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_2_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_2_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_2_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 1, 6), 1, 0, 16, 380, 1,"2DDFT64_2_64_6_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 2, 6), 1, 0, 16, 380, 1,"2DDFT64_2_64_6_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_2_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_2_64_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_2_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_2_64_2_2_16bits");

end;

2ddft_14 := function()
	HDLSynthesize(stream2DDFT(64, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 8, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_4_4_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 8, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_4_4_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_4_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_4_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_4_8_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_4_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_4_8_1_2_16bits");

end;

2ddft_15 := function()
	HDLSynthesize(stream2DDFT(64, 4, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_4_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_4_16_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_4_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_4_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_4_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_4_32_3_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_4_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_4_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT64_4_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT64_4_64_3_2_16bits");

end;

2ddft_16 := function()
	HDLSynthesize(stream2DDFT(64, 4, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_4_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 4, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_4_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_8_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_8_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_8_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_8_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_8_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_8_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_8_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_8_16_1_2_16bits");

end;

2ddft_17 := function()
	HDLSynthesize(stream2DDFT(64, 8, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_8_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_8_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_8_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_8_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT64_8_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT64_8_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_8_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 8, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_8_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(64, 64, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT64_64_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(64, 64, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT64_64_64_1_2_16bits");

end;

2ddft_18 := function()
	HDLSynthesize(stream2DDFT(128, 2, 4, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_2_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 4, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_2_7_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 8, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_4_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 8, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_4_7_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 16, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_8_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 16, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_8_7_2_16bits");

end;

2ddft_19 := function()
	HDLSynthesize(stream2DDFT(128, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 32, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_16_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 32, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_16_7_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 64, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_32_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 64, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_32_7_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_32_1_2_16bits");

end;

2ddft_20 := function()
	HDLSynthesize(stream2DDFT(128, 2, 128, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_64_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 128, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_64_7_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 256, 1, 7), 1, 0, 16, 380, 1,"2DDFT128_2_128_7_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 256, 2, 7), 1, 0, 16, 380, 1,"2DDFT128_2_128_7_2_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(128, 128, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT128_128_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(128, 128, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT128_128_128_1_2_16bits");

end;

2ddft_21 := function()
	HDLSynthesize(stream2DDFT(256, 2, 4, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_2_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_2_8_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_2_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_2_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_2_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_2_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_4_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_4_8_2_16bits");

end;

2ddft_22 := function()
	HDLSynthesize(stream2DDFT(256, 2, 8, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_4_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_4_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_8_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_8_8_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_8_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_8_4_2_16bits");

end;

2ddft_23 := function()
	HDLSynthesize(stream2DDFT(256, 2, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_16_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_16_8_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_16_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_16_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_16_2_2_16bits");

end;

2ddft_24 := function()
	HDLSynthesize(stream2DDFT(256, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_32_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_32_8_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_32_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_32_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_32_1_2_16bits");

end;

2ddft_25 := function()
	HDLSynthesize(stream2DDFT(256, 2, 128, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_64_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_64_8_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_64_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_64_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_128_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_128_8_2_16bits");

end;

2ddft_26 := function()
	HDLSynthesize(stream2DDFT(256, 2, 256, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_128_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_128_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 1, 8), 1, 0, 16, 380, 1,"2DDFT256_2_256_8_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 2, 8), 1, 0, 16, 380, 1,"2DDFT256_2_256_8_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_2_256_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_2_256_4_2_16bits");

end;

2ddft_27 := function()
	HDLSynthesize(stream2DDFT(256, 2, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_2_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_2_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_2_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 8, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_4_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 8, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_4_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_4_1_2_16bits");

end;

2ddft_28 := function()
	HDLSynthesize(stream2DDFT(256, 4, 16, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_8_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 16, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_8_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 32, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_16_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 32, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_16_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_16_2_2_16bits");

end;

2ddft_29 := function()
	HDLSynthesize(stream2DDFT(256, 4, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 64, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_32_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 64, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_32_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 128, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_64_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 128, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_64_4_2_16bits");

end;

2ddft_30 := function()
	HDLSynthesize(stream2DDFT(256, 4, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 256, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_128_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 256, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_128_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_128_1_2_16bits");

end;

2ddft_31 := function()
	HDLSynthesize(stream2DDFT(256, 4, 512, 1, 4), 1, 0, 16, 380, 1,"2DDFT256_4_256_4_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 512, 2, 4), 1, 0, 16, 380, 1,"2DDFT256_4_256_4_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_4_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_4_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_4_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 4, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_4_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_16_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_16_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_16_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_16_16_1_2_16bits");

end;

2ddft_32 := function()
	HDLSynthesize(stream2DDFT(256, 16, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_16_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_16_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_16_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_16_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_16_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_16_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_16_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_16_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_16_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_16_128_2_2_16bits");

end;

2ddft_33 := function()
	HDLSynthesize(stream2DDFT(256, 16, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_16_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_16_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT256_16_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT256_16_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_16_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 16, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_16_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(256, 256, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT256_256_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(256, 256, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT256_256_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 4, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_2_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 4, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_2_9_2_16bits");

end;

2ddft_34 := function()
	HDLSynthesize(stream2DDFT(512, 2, 4, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_2_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 4, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_2_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 8, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_4_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 8, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_4_9_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 8, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_4_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 8, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_4_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_4_1_2_16bits");

end;

2ddft_35 := function()
	HDLSynthesize(stream2DDFT(512, 2, 16, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_8_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 16, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_8_9_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_8_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 32, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_16_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 32, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_16_9_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_16_3_2_16bits");

end;

2ddft_36 := function()
	HDLSynthesize(stream2DDFT(512, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 64, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_32_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 64, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_32_9_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_32_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 128, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_64_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 128, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_64_9_2_16bits");

end;

2ddft_37 := function()
	HDLSynthesize(stream2DDFT(512, 2, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_64_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 256, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_128_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 256, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_128_9_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 256, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_128_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 256, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_128_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_128_1_2_16bits");

end;

2ddft_38 := function()
	HDLSynthesize(stream2DDFT(512, 2, 512, 1, 9), 1, 0, 16, 380, 1,"2DDFT512_2_256_9_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 512, 2, 9), 1, 0, 16, 380, 1,"2DDFT512_2_256_9_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 512, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_2_256_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 512, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_2_256_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_2_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_8_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_8_8_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_8_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_8_8_1_2_16bits");

end;

2ddft_39 := function()
	HDLSynthesize(stream2DDFT(512, 8, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_8_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_8_16_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_8_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_8_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_8_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_8_32_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_8_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_8_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_8_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_8_64_3_2_16bits");

end;

2ddft_40 := function()
	HDLSynthesize(stream2DDFT(512, 8, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_8_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_8_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 256, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_8_128_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 256, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_8_128_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_8_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_8_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 512, 1, 3), 1, 0, 16, 380, 1,"2DDFT512_8_256_3_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 512, 2, 3), 1, 0, 16, 380, 1,"2DDFT512_8_256_3_2_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT512_8_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(512, 8, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT512_8_256_1_2_16bits");

end;

2ddft_41 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 4, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_2_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_2_10_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_2_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_2_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_2_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_2_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_4_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_4_10_2_16bits");

end;

2ddft_42 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 8, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_4_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_4_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_8_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_8_10_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_8_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_8_5_2_16bits");

end;

2ddft_43 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_16_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_16_10_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_16_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_16_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_16_2_2_16bits");

end;

2ddft_44 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_32_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_32_10_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_32_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_32_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_32_1_2_16bits");

end;

2ddft_45 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 128, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_64_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_64_10_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_64_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_64_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_128_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_128_10_2_16bits");

end;

2ddft_46 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 256, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_128_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_128_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 1, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_256_10_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 2, 10), 1, 0, 16, 380, 1,"2DDFT1024_2_256_10_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_256_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_2_256_5_2_16bits");

end;

2ddft_47 := function()
	HDLSynthesize(stream2DDFT(1024, 2, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_2_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_2_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 8, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_4_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 8, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_4_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 16, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_8_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 16, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_8_5_2_16bits");

end;

2ddft_48 := function()
	HDLSynthesize(stream2DDFT(1024, 4, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 32, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_16_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 32, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_16_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 64, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_32_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 64, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_32_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_32_1_2_16bits");

end;

2ddft_49 := function()
	HDLSynthesize(stream2DDFT(1024, 4, 128, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_64_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 128, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_64_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 256, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_128_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 256, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_128_5_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 512, 1, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_256_5_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 512, 2, 5), 1, 0, 16, 380, 1,"2DDFT1024_4_256_5_2_16bits");

end;

2ddft_50 := function()
	HDLSynthesize(stream2DDFT(1024, 4, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 4, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_4_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_64_1_2_16bits");

end;

2ddft_51 := function()
	HDLSynthesize(stream2DDFT(1024, 32, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT1024_32_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(1024, 32, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT1024_32_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 4, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_2_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 4, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_2_11_2_16bits");

end;

2ddft_52 := function()
	HDLSynthesize(stream2DDFT(2048, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 8, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_4_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 8, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_4_11_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 16, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_8_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 16, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_8_11_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_8_1_2_16bits");

end;

2ddft_53 := function()
	HDLSynthesize(stream2DDFT(2048, 2, 32, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_16_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 32, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_16_11_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 64, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_32_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 64, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_32_11_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 128, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_64_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 128, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_64_11_2_16bits");

end;

2ddft_54 := function()
	HDLSynthesize(stream2DDFT(2048, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 256, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_128_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 256, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_128_11_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 512, 1, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_256_11_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 512, 2, 11), 1, 0, 16, 380, 1,"2DDFT2048_2_256_11_2_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(2048, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT2048_2_256_1_2_16bits");

end;

2ddft_55 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 4, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_2_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_2_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_2_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_2_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_2_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_2_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_2_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_2_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_2_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_2_2_2_16bits");

end;

2ddft_56 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_4_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_4_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_4_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_4_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_4_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_4_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_4_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_4_3_2_16bits");

end;

2ddft_57 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_8_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_8_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_8_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_8_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_8_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_8_4_2_16bits");

end;

2ddft_58 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_8_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_16_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_16_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_16_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_16_6_2_16bits");

end;

2ddft_59 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 32, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_16_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_16_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_16_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_32_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_32_12_2_16bits");

end;

2ddft_60 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 64, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_32_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_32_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_32_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_32_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_32_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_32_1_2_16bits");

end;

2ddft_61 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 128, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_64_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_64_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_64_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_64_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_64_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_64_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_64_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_64_2_2_16bits");

end;

2ddft_62 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_128_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_128_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_128_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_128_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_128_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_128_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_128_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_128_3_2_16bits");

end;

2ddft_63 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 1, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_256_12_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 2, 12), 1, 0, 16, 380, 1,"2DDFT4096_2_256_12_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_256_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_2_256_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_256_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_2_256_4_2_16bits");

end;

2ddft_64 := function()
	HDLSynthesize(stream2DDFT(4096, 2, 512, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_256_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_2_256_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_2_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_2_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_4_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_4_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_4_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_4_3_2_16bits");

end;

2ddft_65 := function()
	HDLSynthesize(stream2DDFT(4096, 4, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_8_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_8_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_8_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_8_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_8_2_2_16bits");

end;

2ddft_66 := function()
	HDLSynthesize(stream2DDFT(4096, 4, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_16_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_16_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_16_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_16_1_2_16bits");

end;

2ddft_67 := function()
	HDLSynthesize(stream2DDFT(4096, 4, 64, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_32_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_32_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_32_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_64_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_64_6_2_16bits");

end;

2ddft_68 := function()
	HDLSynthesize(stream2DDFT(4096, 4, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_64_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_128_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_128_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_128_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_128_3_2_16bits");

end;

2ddft_69 := function()
	HDLSynthesize(stream2DDFT(4096, 4, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 1, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_256_6_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 2, 6), 1, 0, 16, 380, 1,"2DDFT4096_4_256_6_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_256_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_4_256_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_4_256_2_2_16bits");

end;

2ddft_70 := function()
	HDLSynthesize(stream2DDFT(4096, 4, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 4, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_4_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 16, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_8_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 16, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_8_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 32, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_16_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 32, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_16_4_2_16bits");

end;

2ddft_71 := function()
	HDLSynthesize(stream2DDFT(4096, 8, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 64, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_32_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 64, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_32_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_32_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_32_1_2_16bits");

end;

2ddft_72 := function()
	HDLSynthesize(stream2DDFT(4096, 8, 128, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_64_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 128, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_64_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 256, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_128_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 256, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_128_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_128_2_2_16bits");

end;

2ddft_73 := function()
	HDLSynthesize(stream2DDFT(4096, 8, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 512, 1, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_256_4_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 512, 2, 4), 1, 0, 16, 380, 1,"2DDFT4096_8_256_4_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_8_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 8, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_8_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 32, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_16_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 32, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_16_3_2_16bits");

end;

2ddft_74 := function()
	HDLSynthesize(stream2DDFT(4096, 16, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 64, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_32_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 64, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_32_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 128, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_64_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 128, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_64_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_64_1_2_16bits");

end;

2ddft_75 := function()
	HDLSynthesize(stream2DDFT(4096, 16, 256, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_128_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 256, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_128_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 512, 1, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_256_3_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 512, 2, 3), 1, 0, 16, 380, 1,"2DDFT4096_16_256_3_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 16, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_16_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_64_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_64_64_2_2_16bits");

end;

2ddft_76 := function()
	HDLSynthesize(stream2DDFT(4096, 64, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_64_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_64_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_64_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_64_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_64_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_64_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT4096_64_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT4096_64_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT4096_64_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(4096, 64, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT4096_64_256_1_2_16bits");

end;

2ddft_77 := function()
	HDLSynthesize(stream2DDFT(8192, 2, 4, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_2_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 4, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_2_13_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_2_1_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 8, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_4_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 8, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_4_13_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 16, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_8_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 16, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_8_13_2_16bits");

end;

2ddft_78 := function()
	HDLSynthesize(stream2DDFT(8192, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 32, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_16_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 32, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_16_13_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 64, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_32_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 64, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_32_13_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_32_1_2_16bits");

end;

2ddft_79 := function()
	HDLSynthesize(stream2DDFT(8192, 2, 128, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_64_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 128, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_64_13_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 256, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_128_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 256, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_128_13_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 512, 1, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_256_13_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 512, 2, 13), 1, 0, 16, 380, 1,"2DDFT8192_2_256_13_2_16bits");

end;

2ddft_80 := function()
	HDLSynthesize(stream2DDFT(8192, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(8192, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT8192_2_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_2_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_2_14_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_2_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_2_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_2_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_2_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_2_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 4, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_2_1_2_16bits");

end;

2ddft_81 := function()
	HDLSynthesize(stream2DDFT(16384, 2, 8, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_4_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_4_14_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_4_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_4_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_4_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_4_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_4_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_8_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_8_14_2_16bits");

end;

2ddft_82 := function()
	HDLSynthesize(stream2DDFT(16384, 2, 16, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_8_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_8_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_8_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_8_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_16_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_16_14_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_16_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_16_7_2_16bits");

end;

2ddft_83 := function()
	HDLSynthesize(stream2DDFT(16384, 2, 32, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_16_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_16_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_32_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_32_14_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_32_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_32_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_32_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_32_2_2_16bits");

end;

2ddft_84 := function()
	HDLSynthesize(stream2DDFT(16384, 2, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_64_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_64_14_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_64_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_64_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_64_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_64_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_64_1_2_16bits");

end;

2ddft_85 := function()
	HDLSynthesize(stream2DDFT(16384, 2, 256, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_128_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_128_14_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_128_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_128_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 1, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_256_14_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 2, 14), 1, 0, 16, 380, 1,"2DDFT16384_2_256_14_2_16bits");

end;

2ddft_86 := function()
	HDLSynthesize(stream2DDFT(16384, 2, 512, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_256_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_2_256_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_2_256_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 2, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_2_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 8, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_4_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 8, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_4_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 8, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_4_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 8, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_4_1_2_16bits");

end;

2ddft_87 := function()
	HDLSynthesize(stream2DDFT(16384, 4, 16, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_8_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 16, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_8_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 16, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_8_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 16, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_8_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 32, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_16_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 32, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_16_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 32, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_16_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 32, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_16_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 64, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_32_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 64, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_32_7_2_16bits");

end;

2ddft_88 := function()
	HDLSynthesize(stream2DDFT(16384, 4, 64, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_32_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 64, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_32_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 128, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_64_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 128, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_64_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 128, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_64_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 128, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_64_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 256, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_128_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 256, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_128_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_128_1_2_16bits");

end;

2ddft_89 := function()
	HDLSynthesize(stream2DDFT(16384, 4, 512, 1, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_256_7_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 512, 2, 7), 1, 0, 16, 380, 1,"2DDFT16384_4_256_7_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 4, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_4_256_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 256, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_128_128_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 256, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_128_128_2_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 256, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_128_128_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 256, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_128_128_1_2_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 512, 1, 2), 1, 0, 16, 380, 1,"2DDFT16384_128_256_2_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 512, 2, 2), 1, 0, 16, 380, 1,"2DDFT16384_128_256_2_2_16bits");

end;

2ddft_90 := function()
	HDLSynthesize(stream2DDFT(16384, 128, 512, 1, 1), 1, 0, 16, 380, 1,"2DDFT16384_128_256_1_1_16bits");
	HDLSynthesize(stream2DDFT(16384, 128, 512, 2, 1), 1, 0, 16, 380, 1,"2DDFT16384_128_256_1_2_16bits");

end;


# Copyright (c) 2018-2021, Carnegie Mellon University
# See LICENSE for details

DimLength:=function(l)
  if IsList(l) then
    return Length(l);
  else
    return 1;
  fi;
end;

Hacktype:=function(x)
  if (ObjId(x)=TPtr or ObjId(x)=TArray) then
      return x.t;
  else
      return x;
  fi;
end;

Unify:=function(type,lower)

   if lower=TUnknown then
      return type;
   else
     if type=lower or type=TUnknown then
        return lower;
     else
        if (type=TReal and lower=TComplex) or (type=TComplex and lower=TReal) then
           return TComplex;
	elif (ObjId(lower)=TVect and lower.t=type) then
	    return lower;
	elif (ObjId(type)=TVect and type.t=lower) then
	    return type;
        else
           Error("Type Unification impossible between ",type, " and ",lower, "\n");
        fi;
     fi;
   fi;
end;

Class(Unification, Visitor, rec(
	Multiplication:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	   o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
        end,
        ICMultiplication:=meth(self,o,input)
          self.Multiplication(o,input);
        end,
        Glue:=meth(self,o,inputs)
         local i,t;
         t := List(inputs,l->Hacktype(l));
         for i in [1..Length(t)] do
          o.TType[i]:=Unify(o.TType[i],t[i]);
         od;
        end,
       Split:=meth(self,o,inputs)
          o.TType[1]:=Unify(o.TType[1],Flat([inputs])[1].t);
       end,

     Cross:=meth(self,o,inputs)
        local counter,sl1,dim1,dimprev;
        dimprev := 0;
        for counter in [1..Length(o._children)] do
           dim1 := DimLength(o._children[counter].dims()[2]);
           sl1 := SubList(inputs,dimprev+1,dim1+dimprev);
           self(o._children[counter],sl1);
           dimprev := dim1;
        od;
        #dim1 := DimLength(o._children[1].dims()[2]);
        #dim2 := DimLength(o._children[2].dims()[2]);
        #sl1 := SubList(inputs,1,dim1);
        #sl2 := SubList(inputs,dim1+1,dim1+dim2);
        #self(o._children[1],sl1);
        #self(o._children[2],sl2);
     end,

    Addition:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	   o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
    end,

    Subtraction:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	   o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
    end,

    #Hacks
    Table := meth(self, o, inputs)
	o.TType:=TInt;
    end,

    TableMRC := meth(self, o, inputs)
	o.TType:=TInt;
    end,

    TableSC := meth(self, o, inputs)
        o.TType:=TInt;
    end,

    SUMAcc := meth(self, o, inputs)
	self(o._children[1],inputs);
    end,

    Wire := meth(self, o, inputs)
        local i, t;
        t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(o.rng())]  do
	   o.TType[i]:=Unify(o.TType[1],TInt);
	od;
    end,

    Or:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
    end,

    And:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
    end,

    Equal:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
     end,

     NotEqual:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
     end,

    ExclusiveOr:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
     end,

    Minimums:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
     end,

     Maximums:=meth(self,o,inputs)
	local i,t;
	t:= List(inputs,l->Hacktype(l));
	for i in [1..Length(t)]  do
	    o.TType[i]:=Unify(o.TType[i],t[i]);
	od;
     end,

     AppendToList := (self, o, inputs) >> skip(),

     MoveToNext := (self, o, inputs) >> skip(),

     GathNeighbours := (self, o, inputs) >> skip(),

     GathOne := (self, o, inputs) >> skip(),

     AssignOneFromNine := (self, o, inputs) >> skip(),

     ConstZBitPlane := (self, o, inputs) >> skip(),

     MagPlane := (self, o, inputs) >> skip(),

     MagCube := (self, o, inputs) >> skip(),

     SignPlane := (self, o, inputs) >> skip(),

     CUPCode := (self, o, inputs) >> skip(),

     SetStatus := (self, o, inputs) >> skip(),

     EBCond := meth(self,o,inputs)
        self.(o.A.name)(o.A,inputs);
	self.(o.B.name)(o.B,inputs);
	self.(o.C.name)(o.C,inputs);
     end,

     EBICompose := meth(self, o, inputs)
        self.(o.C.name)(o.C, inputs);
     end,

     EBEncoded := (self, o, inputs) >> skip(),

     EBNoop := (self, o, inputs) >> skip(),

     RLCoding := (self, o, inputs) >> skip(),

     sppPosMod4 := (self, o, inputs) >> skip(),

     sppFalse := (self, o, inputs) >> skip(),

     sppPosMove2 := (self, o, inputs) >> skip(),

     EBLink := (self, o, inputs) >> skip(),

#MQ:

     CodeLPS := (self, o, inputs) >> skip(),

     MQbitStuffing := (self, o, inputs) >> skip(),

     MQnobitStuffing := (self, o, inputs) >> skip(),

     mqBoutClt := (self, o, inputs) >> skip(),

     mqBoutBeq := (self, o, inputs) >> skip(),

     mqBoutCand := (self, o, inputs) >> skip(),

     mqBoutBpp := (self, o, inputs) >> skip(),

     RenormalizationENC := (self, o, inputs) >> skip(),

     mqRenAlt := (self, o, inputs) >> skip(),

     mqRenCTeq := (self, o, inputs) >> skip(),

     MQCond := (self, o, inputs) >> skip(),

     MQDoWhile := (self, o, inputs) >> skip(),

     MQNoop := (self, o, inputs) >> skip(),

     MQLink := (self, o, inputs) >> skip(),

     mqMPSpre := (self, o, inputs) >> skip(),

     mqMPSf := (self, o, inputs) >> skip(),

     mqMPSt := (self, o, inputs) >> skip(),

     mqFlushRegpre := (self, o, inputs) >> skip(),

     mqFlushRegmed := (self, o, inputs) >> skip(),

     mqFlushRegpost := (self, o, inputs) >> skip(),

     MQInit := (self, o, inputs) >> skip(),

     MQBranch := (self, o, inputs) >> skip(),

     MQRetrieve := (self, o, inputs) >> skip(),

     MQLoop := (self, o, inputs) >> skip(),

     Const:=meth(self,o,inputs)
         local t;
         t:= List(inputs,l->Hacktype(l));
	 o.TType[1]:=Unify(o.TType[1],TInt);
     end,

     #NOTE: move to ebcot/unification.gi
     COND_OL := (self, o, inputs) >> skip(),

     Cross:=meth(self,o,inputs)
        local i;
        for i in [1..Length(o._children)] do
	     self(o._children[i],inputs[i]);
        od;
     end,

     ISum:=meth(self,o,inputs) self(o._children[1],inputs); end,
     SMPSum:=meth(self,o,inputs) self(o._children[1],inputs); end,
     ISumAcc:=meth(self,o,inputs) self(o._children[1],inputs); end,
     Compose:=meth(self,o,inputs)
        local ch, numch,counter,z;
	ch := o.children();
	numch := Length(ch);
        for counter in [0..numch-1] do
           self(ch[numch-counter],inputs);
           inputs:=ch[numch-counter].rng();
#	   Print("after step ",counter," Compose is ",inputs,"\n");
        od;
     end,

     VTensor_OL:=meth(self,o,inputs)
       local inp;
       inp:=Copy(inputs);
       inp:=List(inp,x->Cond(ObjId(x)=TPtr,TPtr(TVect(x.t,o.vlen)),ObjId(x)=TArray,TArray(TVect(x.t,o.vlen),x.size/o.vlen),Error("Trying to unify a VTensor with something weird. It should work but i(Fred) just don't know how to do it right now.")));
        self(o._children[1],inp);
     end,
     VTensor:=meth(self,o,input)
       local inputs;
       inputs:=StripList(Copy(input));
       self(o._children[1],Cond(ObjId(inputs)=TPtr, [TPtr(TVect(inputs.t,o.vlen))],ObjId(inputs)=TArray,[TArray(TVect(inputs.t,o.vlen),inputs.size/o.vlen)],Error("Trying to unify a VTensor with something weird. It should work but i(Fred) just don't know how to do it right now.")));
      end,
     BlockVPerm:=meth(self,o,inputs)
            self(o._children[1],[Cond(ObjId(inputs[1])=TArray,TArray(inputs[1].t,inputs[1].size/o.n),"Not handled")]);
      end,

     ScatInit:=meth(self,o,inputs)
         self(o._children, inputs);
     end,

     VScat:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
#     VScat_sv:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VPrm_x_I:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VGath:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VGath_dup:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VScatAcc:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     ScatAcc:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     ICScatAcc :=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     Scat:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     Gath:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     Blk:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VReplicate:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VHAdd:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     Prm:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     VPerm:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     I:=meth(self,o,inputs) o.TType:=Unify(o.TType,Hacktype(Flat([inputs])[1])); end,
     SUM:=meth(self,o,inputs) DoForAll(o._children,i->self(i,inputs)); end,
     L:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
     BB:=meth(self,o,inputs) self(o._children[1],inputs); end,
     LinkIO:=meth(self,o,inputs) self(o.rChildren()[1],inputs); end,
     Buf:=meth(self,o,inputs) self(o._children[1],inputs); end,
     Inplace:=meth(self,o,inputs) self(o._children[1],inputs); end,
     SymSPL:=meth(self,o,inputs) self(o._children[1],inputs); end,
     NoPull:=meth(self,o,inputs) self(o._children[1],inputs); end,

     RecursStepCall:=meth(self,o,inputs) o.TType:=Unify(o.TType,Flat([inputs])[1].t); end,
 ));


# Copyright (c) 2018-2021, Carnegie Mellon University
# See LICENSE for details

IsContainer := x -> IsRec(x) and IsBound(x.isContainer) and x.isContainer;

Class(BaseContainer, BaseOperation, rec(

    isContainer := true,

    new := meth(self, spl)
        local res;
	res := SPL(WithBases(self, rec(_children:=[spl])));
	res.dimensions := res.dims();
	return res;
    end,

    dims := meth(self) return self._children[1].dims(); end,
    area := meth(self) return self._children[1].area(); end,

    isPermutation := meth(self) return IsPermutationSPL(self._children[1]); end,
    isReal := meth(self) return IsRealSPL(self._children[1]); end,
    toAMat := meth(self) return AMatSPL(self._children[1]); end,

    transpose := self >>
        CopyFields(self, rec(_children:=[self._children[1].transpose()],
	                     dimensions:=Reversed(self.dimensions))),
    conjTranspose := self >>
        CopyFields(self, rec(_children:=[self._children[1].conjTranspose()],
	                     dimensions:=Reversed(self.dimensions))),

    normalizedArithCost := self >> self._children[1].normalizedArithCost(),
));


# Copyright (c) 2018-2021, Carnegie Mellon University
# See LICENSE for details

Declare(VBase);

Class(VBase, SumsBase, BaseContainer, rec(
    __call__ := (self, spl, vlen) >> Checked(IsSPL(spl), IsInt(vlen),
        SPL(WithBases(self, rec(_children := [spl],
                                vlen := vlen,
                                dimensions := spl.dimensions)))),
    rChildren := self >> [self._children[1], self.vlen],
    rSetChild := meth(self, n, newChild)
        if n=1 then self._children[1] := newChild; self.dimensions := newChild.dimensions;
        elif n=2 then self.vlen := newChild;
        else Error("<n> must be in [1..2]");
        fi;
    end,

    print := (self, i, is) >> Print(self.name, "(", self._children[1], ", ", self.vlen, ")"),

    transpose := self >> VBase(self.child(1).transpose(), self.vlen),

    sums := self >> self
));


# Copyright (c) 2018-2021, Carnegie Mellon University
# See LICENSE for details

Import(paradigms.common, paradigms.vector.breakdown);

#   NOTE: Phase out!!
Enable_tSPL := function()
    Print("\n\nImportant change: \"Enable_tSPL\" is to be phased out -- use \"tSPL_Globals.getDPOpts()\" and ask Franz\n\n");
    SwitchRulesQuiet(DFT, []);
    SwitchRulesQuiet(WHT, []);
    SwitchRulesQuiet(MDDFT, []);
    SwitchRulesName([DFT_Base, DFT_Rader, DFT_SplitRadix, DFT_tSPL_CT, DFT_CT, WHT_Base, WHT_tSPL_BinSplit, MDDFT_Base, MDDFT_tSPL_RowCol, WHT_tSPL_Pease], true);
    SwitchRulesName([DFT_vecrec, IxA_L_vecrec, DFT_vecrec_T, L_IxA_vecrec], USE_VECREC);
    SwitchRulesName([IxA_L_vec, L_IxA_vec], true);
end;

Class(tSPL_Globals, rec(
    getDPOpts := self >> rec(breakdownRules := self.breakdownRules()),
    breakdownRules := self >>
        rec(
            DFT := [ DFT_Base, DFT_Rader, DFT_SplitRadix, DFT_CT_Mincost, DFT_GoodThomas, DFT_tSPL_CT, DFT_tSPL_Rader, DFT_CT ],
            WHT := [ WHT_Base, WHT_tSPL_BinSplit, WHT_tSPL_Pease ],
            MDDFT := [ MDDFT_Base, MDDFT_tSPL_RowCol ],
            TTensor := [ AxI_IxB, IxB_AxI ],
            TTensorI := [ IxA_base, AxI_base, IxA_L_base, L_IxA_base ],
            TL := [ L_base ],
#D            TTag := [ TTag_down ],
            TRC := [TRC_tag ],
            TDiag := [ TDiag_tag ],
            TRaderMid:= [ TRaderMid_tag ],
            TDirectSum := [ A_dirsum_B ],
            TCompose := [ TCompose_tag ],
            TICompose := [ TICompose_tag ],
            TGrp := [ TGrp_tag ],
            TDR := [TDR_base ]
        )
));

#    [DFT_vecrec, IxA_L_vecrec, DFT_vecrec_T, L_IxA_vecrec], USE_VECREC
#    [IxA_L_vec_LS, L_IxA_vec_LS], USE_LOOPSPLITTING