-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvector.cpp
More file actions
80 lines (57 loc) · 1.76 KB
/
vector.cpp
File metadata and controls
80 lines (57 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <cstdlib>
#include <iostream>
#include "cross.hpp"
#include "dot.hpp"
#include "onb.hpp"
#include "minmax.hpp"
#include "rsqrt.hpp"
#include "sinf.hpp"
#include "tanf.hpp"
int main()
{
auto a(vxl::make_vector(1.f, 2.f, 3.f));
vxl::vector<float, 3> b{1.f, 1.f, 1.f};
std::cout << (a == a) << std::endl;
std::cout << (a == b) << std::endl;
std::cout << (a >= b) << std::endl;
std::cout << (a <= b) << std::endl;
std::cout << vxl::all(a) << std::endl;
std::cout << vxl::any(b) << std::endl;
std::cout << vxl::dot(a, b).data_[0] << std::endl;
std::cout << vxl::cross(a, b) << std::endl;
std::cout << vxl::sqrt(a) << std::endl;
vxl::vector<float, 4> c{1.f, 2.f, -3.f, 4.f};
{
auto const sc(vxl::sincos(c));
std::cout << sc.first << std::endl;
std::cout << sc.second << std::endl;
}
std::cout << vxl::sin(c) << std::endl;
std::cout << vxl::cos(c) << std::endl;
std::cout << vxl::tan(c) << std::endl;
std::cout << vxl::cot(c) << std::endl;
{
vxl::vector<float, 1> d{1.f};
auto const sc(vxl::sincos(d));
std::cout << sc.first(0) << std::endl;
std::cout << sc.second(0) << std::endl;
}
{
vxl::vector<double, 1> d{3.};
std::cout << vxl::sqrt(d)(0) << std::endl;
}
std::cout << vxl::max(a) << std::endl;
std::cout << vxl::min(a) << std::endl;
vxl::vector<float, 3> const u{3.0f, 2.0f, 1.0f};
std::cout << vxl::ortho(u) << std::endl;
std::cout << vxl::ortho(u, vxl::canonical_tag{}) << std::endl;
vxl::vector<double, 4> e{1., 2., 3., 4.};
std::cout << (e == e) << std::endl;
std::cout << vxl::norm2(e) << std::endl;
std::cout << vxl::dot(
vxl::vector<float, 2>{1, 2},
vxl::vector<float, 2>{3, 4}
).data_[0] <<
std::endl;
return std::hash<decltype(a)>()(a);
}