Home | History | Annotate | Download | only in math

Lines Matching refs:lv

110     friend inline constexpr VECTOR<T> PURE operator +(VECTOR<T> lv, const VECTOR<RT>& rv) {
111 // don't pass lv by reference because we need a copy anyways
112 return lv += rv;
115 friend inline constexpr VECTOR<T> PURE operator -(VECTOR<T> lv, const VECTOR<RT>& rv) {
116 // don't pass lv by reference because we need a copy anyways
117 return lv -= rv;
126 friend inline constexpr VECTOR<T> PURE operator +(VECTOR<T> lv, const VECTOR<T>& rv) {
127 // don't pass lv by reference because we need a copy anyways
128 return lv += rv;
130 friend inline constexpr VECTOR<T> PURE operator -(VECTOR<T> lv, const VECTOR<T>& rv) {
131 // don't pass lv by reference because we need a copy anyways
132 return lv -= rv;
191 friend inline constexpr VECTOR<T> PURE operator *(VECTOR<T> lv, const VECTOR<RT>& rv) {
192 // don't pass lv by reference because we need a copy anyways
193 return lv *= rv;
196 friend inline constexpr VECTOR<T> PURE operator /(VECTOR<T> lv, const VECTOR<RT>& rv) {
197 // don't pass lv by reference because we need a copy anyways
198 return lv /= rv;
207 friend inline constexpr VECTOR<T> PURE operator *(VECTOR<T> lv, const VECTOR<T>& rv) {
208 // don't pass lv by reference because we need a copy anyways
209 return lv *= rv;
211 friend inline constexpr VECTOR<T> PURE operator /(VECTOR<T> lv, const VECTOR<T>& rv) {
212 // don't pass lv by reference because we need a copy anyways
213 return lv /= rv;
275 bool PURE operator ==(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
276 for (size_t i = 0; i < lv.size(); i++)
277 if (lv[i] != rv[i])
284 bool PURE operator !=(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
285 return !operator ==(lv, rv);
290 bool PURE operator >(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
291 for (size_t i = 0; i < lv.size(); i++) {
292 if (lv[i] == rv[i]) {
295 return lv[i] > rv[i];
302 constexpr bool PURE operator <=(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
303 return !(lv > rv);
308 bool PURE operator <(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
309 for (size_t i = 0; i < lv.size(); i++) {
310 if (lv[i] == rv[i]) {
313 return lv[i] < rv[i];
320 constexpr bool PURE operator >=(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
321 return !(lv < rv);
326 CONSTEXPR VECTOR<bool> PURE equal(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
328 for (size_t i = 0; i < lv.size(); i++) {
329 r[i] = lv[i] == rv[i];
336 CONSTEXPR VECTOR<bool> PURE notEqual(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
338 for (size_t i = 0; i < lv.size(); i++) {
339 r[i] = lv[i] != rv[i];
346 CONSTEXPR VECTOR<bool> PURE lessThan(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
348 for (size_t i = 0; i < lv.size(); i++) {
349 r[i] = lv[i] < rv[i];
356 CONSTEXPR VECTOR<bool> PURE lessThanEqual(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
358 for (size_t i = 0; i < lv.size(); i++) {
359 r[i] = lv[i] <= rv[i];
366 CONSTEXPR VECTOR<bool> PURE greaterThan(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
368 for (size_t i = 0; i < lv.size(); i++) {
369 r[i] = lv[i] > rv[i];
376 CONSTEXPR VECTOR<bool> PURE greaterThanEqual(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
378 for (size_t i = 0; i < lv.size(); i++) {
379 r[i] = lv[i] >= rv[i];
403 friend inline CONSTEXPR T PURE dot(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
405 for (size_t i = 0; i < lv.size(); i++) {
406 //r = std::fma(lv[i], rv[i], r);
407 r += lv[i] * rv[i];
412 friend inline constexpr T PURE norm(const VECTOR<T>& lv) {
413 return std::sqrt(dot(lv, lv));
416 friend inline constexpr T PURE length(const VECTOR<T>& lv) {
417 return norm(lv);
420 friend inline constexpr T PURE norm2(const VECTOR<T>& lv) {
421 return dot(lv, lv);
424 friend inline constexpr T PURE length2(const VECTOR<T>& lv) {
425 return norm2(lv);
429 friend inline constexpr T PURE distance(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
430 return length(rv - lv);
434 friend inline constexpr T PURE distance2(const VECTOR<T>& lv, const VECTOR<RT>& rv) {
435 return length2(rv - lv);
438 friend inline constexpr VECTOR<T> PURE normalize(const VECTOR<T>& lv) {
439 return lv * (T(1) / length(lv));
495 friend inline CONSTEXPR VECTOR<T> PURE saturate(const VECTOR<T>& lv) {
496 return clamp(lv, T(0), T(1));
506 friend inline CONSTEXPR VECTOR<T> PURE fma(const VECTOR<T>& lv, const VECTOR<T>& rv, VECTOR<T> a) {
507 for (size_t i = 0; i<lv.size(); i++) {
508 //a[i] = std::fma(lv[i], rv[i], a[i]);
509 a[i] += (lv