3 #include "testing/testing.h"
7 TEST(math_solvers, Tridiagonal1)
16 EXPECT_FLOAT_EQ(
x[0], 2);
19 TEST(math_solvers, Tridiagonal3)
21 float a[3] = {1, 2, 3};
22 float b[3] = {4, 5, 6};
23 float c[3] = {7, 8, 9};
24 float d[3] = {18, 36, 24};
28 EXPECT_FLOAT_EQ(
x[0], 1);
29 EXPECT_FLOAT_EQ(
x[1], 2);
30 EXPECT_FLOAT_EQ(
x[2], 3);
33 TEST(math_solvers, CyclicTridiagonal1)
42 EXPECT_FLOAT_EQ(
x[0], 1);
45 TEST(math_solvers, CyclicTridiagonal2)
50 float d[2] = {15, 16};
54 EXPECT_FLOAT_EQ(
x[0], 1);
55 EXPECT_FLOAT_EQ(
x[1], 2);
58 TEST(math_solvers, CyclicTridiagonal3)
60 float a[3] = {1, 2, 3};
61 float b[3] = {4, 5, 6};
62 float c[3] = {7, 8, 9};
63 float d[3] = {21, 36, 33};
67 EXPECT_FLOAT_EQ(
x[0], 1);
68 EXPECT_FLOAT_EQ(
x[1], 2);
69 EXPECT_FLOAT_EQ(
x[2], 3);
bool BLI_tridiagonal_solve_cyclic(const float *a, const float *b, const float *c, const float *d, float *r_x, int count)
Solve a possibly cyclic tridiagonal system using the Sherman-Morrison formula.
bool BLI_tridiagonal_solve(const float *a, const float *b, const float *c, const float *d, float *r_x, int count)
Solve a tridiagonal system of equations:
TEST(math_solvers, Tridiagonal1)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)