118 {
"line_case_a", 2.0, 0.0, 0.0, -3.0, 0.0, 0.0, 0.5, 0.0, 0.0 },
119 {
"line_case_b", -1.25, 0.0, 0.0, 4.5, 0.0, 0.0, -2.0, 0.0, 0.0 },
122 {
"plane_case_a", 2.0, 3.0, 0.0, 5.0, -6.0, 0.0, 1.25, -0.5, 0.0 },
123 {
"plane_case_b", -1.0, 4.0, 0.0, 0.5, 2.5, 0.0, -3.0, 1.5, 0.0 },
126 {
"space_case_a", 2.0, 3.0, 4.0, 5.0, -6.0, 7.0, 1.25, -0.5, 2.0 },
127 {
"space_case_b", -1.0, 4.0, 0.75, 0.5, 2.5, -3.5, -3.0, 1.5, 2.25 },
143 const auto copied = a;
148 Vec scaled = 1.25 * a;
149 scaled += (-0.5) *
b;
150 scaled += (0.25) * c;
155 Vec minus_assign = a;
160 accum.add_scaled(a, 1.25);
161 accum.add_scaled(
b, -0.5);
162 accum.subtract_scaled(c, -0.25);
164 const auto divided = a / 5.0;
181 result.
vectors.push_back(copied);
183 result.
vectors.push_back(scaled);
184 result.
vectors.push_back(accum);
185 result.
vectors.push_back(plus_assign);
186 result.
vectors.push_back(minus_assign);
187 result.
vectors.push_back(divided);
188 result.
vectors.push_back(outer_right);
189 result.
vectors.push_back(outer_left);
190 result.
vectors.push_back(mult_assign);
191 result.
vectors.push_back(div_assign);
197 result.
scalars.push_back(a.contract(
b));
198 result.
scalars.push_back(mix.norm());
199 result.
scalars.push_back(mix.norm_sq());
200 result.
scalars.push_back(make_vector<Vec>(0.0, 0.0, 0.0).is_zero() ? 1.0 : 0.0);
201 result.
scalars.push_back(mix.is_zero() ? 1.0 : 0.0);
202 result.
scalars.push_back((a == a) ? 1.0 : 0.0);
203 result.
scalars.push_back((a ==
b) ? 1.0 : 0.0);
204 result.
scalars.push_back((a != a) ? 1.0 : 0.0);
205 result.
scalars.push_back((a !=
b) ? 1.0 : 0.0);
206 result.
scalars.push_back(assign_zero.is_zero() ? 1.0 : 0.0);
211 const auto xvec = make_vector<Vec>(1.3);
217 const auto yvec = make_vector<Vec>(0.0, 2.7);
218 const auto xydiag = make_vector<Vec>(3.1, 3.1);
228 const auto xypdiag = make_vector<Vec>(0.8, -0.8);
229 const auto zvec = make_vector<Vec>(0.0, 0.0, 1.1);
230 const auto xzdiag = make_vector<Vec>(0.0, 0.7, 0.7);
231 const auto icosa1 = make_vector<Vec>(1.0,
golden_ratio, 0.0);
232 const auto icosa2 = make_vector<Vec>(-1.0,
golden_ratio, 0.0);
233 const auto icosa3 = make_vector<Vec>(0.0, 1.0,
golden_ratio);
252 const auto cross = a.cross(
b);
253 auto unit_cross = cross;
255 unit_cross = cross.unit();
257 result.
vectors.push_back(cross);
258 result.
vectors.push_back(unit_cross);