Mercurial > hg > orthanc-stone
comparison Framework/Toolbox/LinearAlgebra.cpp @ 1002:341e68752354
dot product
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Fri, 20 Sep 2019 12:00:04 +0200 |
parents | 1f74bc3459ba |
children | 6c159b8362ff 2d8ab34c8c91 |
comparison
equal
deleted
inserted
replaced
1001:e704a53c9d0a | 1002:341e68752354 |
---|---|
124 { | 124 { |
125 u = u / norm; | 125 u = u / norm; |
126 } | 126 } |
127 } | 127 } |
128 | 128 |
129 | |
130 void CrossProduct(Vector& result, | 129 void CrossProduct(Vector& result, |
131 const Vector& u, | 130 const Vector& u, |
132 const Vector& v) | 131 const Vector& v) |
133 { | 132 { |
134 if (u.size() != 3 || | 133 if (u.size() != 3 || |
142 result[0] = u[1] * v[2] - u[2] * v[1]; | 141 result[0] = u[1] * v[2] - u[2] * v[1]; |
143 result[1] = u[2] * v[0] - u[0] * v[2]; | 142 result[1] = u[2] * v[0] - u[0] * v[2]; |
144 result[2] = u[0] * v[1] - u[1] * v[0]; | 143 result[2] = u[0] * v[1] - u[1] * v[0]; |
145 } | 144 } |
146 | 145 |
146 double DotProduct(const Vector& u, const Vector& v) | |
147 { | |
148 if (u.size() != 3 || | |
149 v.size() != 3) | |
150 { | |
151 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | |
152 } | |
153 | |
154 return (u[0] * v[0] + u[1] * v[1] + u[2] * v[2]); | |
155 } | |
147 | 156 |
148 void FillMatrix(Matrix& target, | 157 void FillMatrix(Matrix& target, |
149 size_t rows, | 158 size_t rows, |
150 size_t columns, | 159 size_t columns, |
151 const double values[]) | 160 const double values[]) |