| 19 | using namespace std; |
| 20 | |
| 21 | inline vector<double> cross(const vector<double>& a, const vector<double>& b) { |
| 22 | return {a[1]*b[2]-a[2]*b[1], a[2]*b[0]-a[0]*b[2], a[0]*b[1]-a[1]*b[0]}; |
| 23 | } |
| 24 | |
| 25 | inline double dot(const vector<double>& a, const vector<double>& b) { |
| 26 | return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]; |