libigl v2.5.0
Loading...
Searching...
No Matches
polar_svd3x3.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/.
8#ifndef IGL_POLAR_SVD3X3_H
9#define IGL_POLAR_SVD3X3_H
10#include <Eigen/Core>
11#include "igl_inline.h"
12namespace igl
13{
26 template<typename Mat>
27 IGL_INLINE void polar_svd3x3(const Mat& A, Mat& R);
28 #ifdef __SSE__
30 template<typename T>
31 IGL_INLINE void polar_svd3x3_sse(const Eigen::Matrix<T, 3*4, 3>& A, Eigen::Matrix<T, 3*4, 3> &R);
32 #endif
33 #ifdef __AVX__
35 template<typename T>
36 IGL_INLINE void polar_svd3x3_avx(const Eigen::Matrix<T, 3*8, 3>& A, Eigen::Matrix<T, 3*8, 3> &R);
37 #endif
38}
39#ifndef IGL_STATIC_LIBRARY
40# include "polar_svd3x3.cpp"
41#endif
42#endif
43
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void polar_svd3x3(const Mat &A, Mat &R)
Computes the closest rotation to input matrix A using specialized 3x3 SVD singular value decompositio...