📄 spblastest.cpp
字号:
void spBlasTest::test_m2dotm1(){ spIdx<float> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); Idx<float> x(4), y(4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); idx_m2dotm1(sptest, x, y); CPPUNIT_ASSERT_EQUAL((float)16, y.get(0)); CPPUNIT_ASSERT_EQUAL((float)4, y.get(1)); CPPUNIT_ASSERT_EQUAL((float)9, y.get(2)); CPPUNIT_ASSERT_EQUAL((float)0, y.get(3));}void spBlasTest::test_m2dotm1sp(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<double> x(0, 4), y(0, 4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); idx_m2dotm1(sptest, x, y); CPPUNIT_ASSERT_EQUAL((double)16, y.get(0)); CPPUNIT_ASSERT_EQUAL((double)4, y.get(1)); CPPUNIT_ASSERT_EQUAL((double)9, y.get(2)); CPPUNIT_ASSERT_EQUAL((double)0, y.get(3));}void spBlasTest::test_m2dotm1acc(){ spIdx<float> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); Idx<float> x(4), y(4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); y.set(-16, 0); y.set(1,1); y.set(2,2); y.set(3,3); Idx<float> y2(4); idx_copy(y, y2); idx_m2dotm1acc(sptest, x, y); CPPUNIT_ASSERT_EQUAL((float)16 + y2.get(0), y.get(0)); CPPUNIT_ASSERT_EQUAL((float)4 + y2.get(1), y.get(1)); CPPUNIT_ASSERT_EQUAL((float)9 + y2.get(2), y.get(2)); CPPUNIT_ASSERT_EQUAL((float)0 + y2.get(3), y.get(3));}void spBlasTest::test_m2dotm1accsp(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<double> x(0, 4), y(0, 4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); y.set(-16, 0); y.set(1,1); y.set(2,2); y.set(3,3); spIdx<double> y2(0, 4); idx_copy(y, y2); idx_m2dotm1acc(sptest, x, y); CPPUNIT_ASSERT_EQUAL((double)16 + y2.get(0), y.get(0)); CPPUNIT_ASSERT_EQUAL((double)4 + y2.get(1), y.get(1)); CPPUNIT_ASSERT_EQUAL((double)9 + y2.get(2), y.get(2)); CPPUNIT_ASSERT_EQUAL((double)0 + y2.get(3), y.get(3));}void spBlasTest::test_m2extm2(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<double> sptest2(0, 4, 4, 4, 4); idx_m2extm2(sptest, sptest, sptest2); sptest2.printElems(); sptest2.pretty();}void spBlasTest::test_m2extm2acc(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<double> sptest2(0, 4, 4, 4, 4); sptest2.set(10, 0, 0, 0, 0); sptest2.set(10, 0, 1, 0, 1); idx_m2extm2acc(sptest, sptest, sptest2); sptest2.printElems(); sptest2.pretty();}void spBlasTest::test_m2squextm2acc(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<double> sptest2(0, 4, 4, 4, 4); sptest2.set(10, 0, 0, 0, 0); sptest2.set(10, 0, 1, 0, 1); idx_m2squextm2acc(sptest, sptest, sptest2); sptest2.printElems(); sptest2.pretty();}void spBlasTest::test_m2squdotm2(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); Idx<double> res; idx_m2squdotm2(sptest, sptest, res); res.printElems();}void spBlasTest::test_m2squdotm2acc(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); Idx<double> res; res.set(15); idx_m2squdotm2acc(sptest, sptest, res); res.printElems();}void spBlasTest::test_m1extm1(){ spIdx<double> sptest(0, 5); sptest.set(1, 1); sptest.set(5, 3); sptest.set(2, 2); spIdx<double> sptest2(0, 6); sptest2.set(1, 1); sptest2.set(5, 5); sptest2.set(2, 2); spIdx<double> res(0,5,6); idx_m1extm1(res, sptest, sptest2); res.printElems(); res.pretty();}void spBlasTest::test_m1extm1acc(){ spIdx<double> sptest(0, 5); sptest.set(1, 1); sptest.set(5, 3); sptest.set(2, 2); spIdx<double> sptest2(0, 6); sptest2.set(1, 1); sptest2.set(5, 5); sptest2.set(2, 2); spIdx<double> res(0,5,6); res.set(15, 0, 0); res.set(10, 2, 2); idx_m1extm1acc(res, sptest, sptest2); res.printElems(); res.pretty();}void spBlasTest::test_m2squdotm1(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); Idx<double> x(4), y(4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); idx_m2squdotm1(sptest, x, y); y.printElems();}void spBlasTest::test_m2squdotm1sp(){ spIdx<float> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<float> x(0,4), y(0, 4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); idx_m2squdotm1(sptest, x, y); y.printElems();}void spBlasTest::test_m2squdotm1acc(){ spIdx<float> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); Idx<float> x(4), y(4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); y.set(-16, 0); y.set(1,1); y.set(2,2); y.set(3,3); idx_m2squdotm1acc(sptest, x, y); y.printElems();}void spBlasTest::test_m2squdotm1accsp(){ spIdx<double> sptest(0, 4, 4); sptest.set(1, 0, 1); sptest.set(5, 0, 3); sptest.set(2, 1, 2); sptest.set(3, 2, 3); sptest.set(4, 3, 0); spIdx<double> x(0, 4), y(0, 4); x.set(0, 0); x.set(1,1); x.set(2,2); x.set(3,3); y.set(-16, 0); y.set(1,1); y.set(2,2); y.set(3,3); idx_m2squdotm1acc(sptest, x, y); y.printElems();}void spBlasTest::test_m1squextm1(){ spIdx<double> sptest(0, 5); sptest.set(1, 1); sptest.set(5, 3); sptest.set(2, 2); spIdx<double> sptest2(0, 6); sptest2.set(1, 1); sptest2.set(5, 5); sptest2.set(2, 2); spIdx<double> res(0,5,6); idx_m1squextm1(res, sptest, sptest2); res.printElems(); res.pretty();}void spBlasTest::test_m1squextm1acc(){ spIdx<double> sptest(0, 5); sptest.set(1, 1); sptest.set(5, 3); sptest.set(2, 2); spIdx<double> sptest2(0, 6); sptest2.set(1, 1); sptest2.set(5, 5); sptest2.set(2, 2); spIdx<double> res(0,5,6); res.set(15, 0, 0); res.set(10, 2, 2); idx_m1squextm1acc(res, sptest, sptest2); res.printElems(); res.pretty();}void spBlasTest::test_normcolumn(){ spIdx<double> sptest(0, 5); sptest.set(1, 1); sptest.set(5, 3); sptest.set(2, 2); spIdx<double> sptest2(0, 6); sptest2.set(1, 1); sptest2.set(5, 5); sptest2.set(2, 2); spIdx<double> res(0,5,6); idx_m1squextm1(res, sptest, sptest2); norm_columns(res); res.printElems(); res.pretty();}void spBlasTest::test_2dconvol(){ Idx<double> test(10,10); test.set(1, 0, 0); test.set(3, 0, 5); test.set(5, 3, 3); test.set(1, 3, 9); test.set(2, 6, 2); test.set(3, 6, 6); test.set(7, 7, 6); test.set(-4, 7, 7); test.set(6, 9, 4); Idx<double> kernel(3,3); kernel.set(-1, 0, 1); kernel.set(-1, 1, 0); kernel.set(-1, 1, 2); kernel.set(-1, 2, 1); kernel.set(4, 1, 1); Idx<double> res1(8, 8); idx_2dconvol(test, kernel, res1); res1.printElems(); spIdx<double> test2(0,10,10); test2.set(1, 0, 0); test2.set(3, 0, 5); test2.set(5, 3, 3); test2.set(1, 3, 9); test2.set(2, 6, 2); test2.set(3, 6, 6); test2.set(7, 7, 6); test2.set(-4, 7, 7); test2.set(6, 9, 4); spIdx<double> res2(0, 8, 8); idx_2dconvol(test2, kernel, res2, true); res2.printElems();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -