fixed dot len 4
This commit is contained in:
parent
cc2c13f7a5
commit
bd9230e07e
2 changed files with 262 additions and 82 deletions
|
|
@ -412,6 +412,51 @@ std::string* TestAllCombinations() {
|
|||
}
|
||||
}
|
||||
|
||||
if constexpr(Len == 4 && Packing*Len == VectorType<Len, Packing>::Alignment) {
|
||||
{
|
||||
VectorType<Len, Packing> vecA(floats);
|
||||
VectorType<Len, Packing> vecC = vecA * 2;
|
||||
VectorType<Len, Packing> vecE = vecA * 3;
|
||||
VectorType<Len, Packing> vecG = vecA * 4;
|
||||
VectorType<1, Packing*4> result = VectorType<Len, Packing>::Length(vecA, vecC, vecE, vecG);
|
||||
Vector<T, Packing*4, VectorType<Len, Packing>::Alignment> stored = result.Store();
|
||||
|
||||
if (!FloatEquals(stored.v[0], expectedLength[0])) {
|
||||
return new std::string(std::format("Length 4 vecA test failed at Len={} Packing={} Expected: {}, Got: {}", Len, Packing, (float)expectedLength[0], (float)stored.v[0]));
|
||||
}
|
||||
|
||||
if (!FloatEquals(stored.v[Packing], expectedLength[0] * 2)) {
|
||||
return new std::string(std::format("Length 4 vecC test failed at Len={} Packing={} Expected: {}, Got: {}", Len, Packing, (float)expectedLength[0] * 2, (float)stored.v[Packing]));
|
||||
}
|
||||
|
||||
if (!FloatEquals(stored.v[Packing*2], expectedLength[0] * 3)) {
|
||||
return new std::string(std::format("Length 4 vecE test failed at Len={} Packing={} Expected: {}, Got: {}", Len, Packing, (float)expectedLength[0] * 3, (float)stored.v[Packing*2]));
|
||||
}
|
||||
|
||||
if (!FloatEquals(stored.v[Packing*3], expectedLength[0] * 4)) {
|
||||
return new std::string(std::format("Length 4 vecG test failed at Len={} Packing={} Expected: {}, Got: {}", Len, Packing, (float)expectedLength[0] * 4, (float)stored.v[Packing*3]));
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
VectorType<Len, Packing> vecA(floats);
|
||||
VectorType<Len, Packing> vecC = vecA * 2;
|
||||
VectorType<Len, Packing> vecE = vecA * 3;
|
||||
VectorType<Len, Packing> vecG = vecA * 4;
|
||||
auto result = VectorType<Len, Packing>::Normalize(vecA, vecC, vecE, vecG);
|
||||
VectorType<1, Packing*4> result2 = VectorType<Len, Packing>::Length(std::get<0>(result), std::get<1>(result), std::get<2>(result), std::get<3>(result));
|
||||
Vector<T, Packing*4, VectorType<Len, Packing>::Alignment> stored = result2.Store();
|
||||
|
||||
//std::println("{}", stored);
|
||||
|
||||
for(std::uint8_t i = 0; i < Len*Packing; i++) {
|
||||
if (!FloatEquals(stored.v[i], T(1))) {
|
||||
return new std::string(std::format("Normalize {} test failed at Len={} Packing={} Expected: {}, Got: {}", i, Len, Packing, 1, (float)stored.v[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return TestAllCombinations<T, VectorType, MaxSize, Len, Packing + 1>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue