Browse Source

ignore error of LAPACKE_dge_nancheck

master
gjj 7 months ago
parent
commit
e6fa6acdfa
  1. 6
      algoim/bernstein.hpp
  2. 63
      gjj/primitiveDebug.hpp

6
algoim/bernstein.hpp

@ -541,7 +541,11 @@ struct BernsteinVandermondeSVD {
std::is_same_v<real, double>,
"Algoim's default LAPACK code assumes real == double; a custom SVD solver is required when real != double");
int info = LAPACKE_dgesvd(LAPACK_ROW_MAJOR, 'A', 'A', P, P, A, P, result.sigma, result.U, P, result.Vt, P, superb);
assert(info == 0 && "LAPACKE_dgesvd call failed (algoim::bernstein::BernsteinVandermondeSVD::get)");
if (info != 0) {
std::cerr << "LAPACKE_dgesvd call failed (algoim::bernstein::BernsteinVandermondeSVD::get), info = " << info
<< std::endl;
}
// assert(info == 0 && "LAPACKE_dgesvd call failed (algoim::bernstein::BernsteinVandermondeSVD::get)");
return result;
}
};

63
gjj/primitiveDebug.hpp

@ -88,6 +88,45 @@ void casePolyhedron2()
auto basicTask = BasicTask(std::make_shared<MeshDesc>(MeshDesc(vertices, indices, scan)));
}
void casePolyhedron3()
{
std::vector<std::shared_ptr<PrimitiveDesc>> primitiveDescriptions;
// std::vector<uvector3> vertices = {uvector3(-1.6, 0, 0),
// uvector3(-1.6, 0, 1.6),
// uvector3(-1.6, 1.6, 0),
// uvector3(-1.6, 1.6, 1.6),
// uvector3(1.6, 0, 0),
// uvector3(1.6, 0, 1.6),
// uvector3(1.6, 1.6, 0),
// uvector3(1.6, 1.6, 1.6)};
std::vector<uvector3> vertices = {uvector3(-0.8, -0.8, -0.8),
uvector3(-0.8, -0.8, 0.8),
uvector3(-0.8, 0.8, -0.8),
uvector3(-0.8, 0.8, 0.8),
uvector3(0.8, -0.8, -0.8),
uvector3(0.8, -0.8, 0.8),
uvector3(0.8, 0.8, -0.8),
uvector3(0.8, 0.8, 0.8)};
std::vector<int> indices = {3,
2,
0,
1, // left
6,
2,
3,
7, // top
7,
3,
1,
5, // front
2,
6,
4,
0}; // back
std::vector<int> scan = {4, 8, 12, 16};
auto basicTask = BasicTask(std::make_shared<MeshDesc>(MeshDesc(vertices, indices, scan)));
}
void case1()
{
auto phi0 = std::make_shared<SphereDesc>(SphereDesc(0.8, 0., 1.));
@ -95,26 +134,4 @@ void case1()
auto basicTask = BasicTask(phi0);
}
void case2()
{
std::vector<std::shared_ptr<PrimitiveDesc>> primitiveDescriptions;
std::vector<uvector3> vertices = {uvector3(-1.6, 0, 0),
uvector3(-1.6, 0, 1.6),
uvector3(-1.6, 1.6, 0),
uvector3(-1.6, 1.6, 1.6),
uvector3(1.6, 0, 0),
uvector3(1.6, 0, 1.6),
uvector3(1.6, 1.6, 0),
uvector3(1.6, 1.6, 1.6)
};
std::vector<int> indices = {2, 3, 1, 0, // force break here
4, 0, 1, 5, //
4, 6, 2, 0, //
6, 7, 3, 2, //
7, 6, 4, 5, //
3, 7, 5, 1};
std::vector<int> scan = {4, 8, 12, 16, 20, 24};
}
void testPrimitive() { casePolyhedron1(); }
void testPrimitive() { casePolyhedron3(); }
Loading…
Cancel
Save