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[])