6 #define EIGEN_MPL2_ONLY
10 namespace isce3 {
namespace core {
12 template<
int N,
typename T>
14 using super_t = Eigen::Matrix<T, N, N>;
15 using super_t::super_t;
18 CUDA_HOSTDEV
auto operator[](
int i) {
return this->row(i); }
19 CUDA_HOSTDEV
auto operator[](
int i)
const {
return this->row(i); }
21 CUDA_HOSTDEV
auto dot(
const super_t& other)
const {
25 CUDA_HOSTDEV
auto dot(
const Eigen::Matrix<T, N, 1>& other)
const {
30 std::initializer_list<std::initializer_list<T>> lst) {
32 for (
const auto& l : lst) {
33 for (
const auto& v : l) {
43 for (
int i = 0; i < N; i++)
44 for (
int j = 0; j < N; j++)
45 out[i][j] = (*
this)[j][i];
53 CUDA_HOSTDEV
static Mat3 xyzToEnu(
double lat,
double lon);
56 template<
int N,
typename T>
60 return Mat3 {{{ -sin(lon), cos(lon), 0.},
61 {-sin(lat)*cos(lon), -sin(lat)*sin(lon), cos(lat)},
62 { cos(lat)*cos(lon), cos(lat)*sin(lon), sin(lat)}}};
static CUDA_HOSTDEV Mat3 xyzToEnu(double lat, double lon)
Compute ENU basis transformation matrix.
Definition: DenseMatrix.h:57
Definition: DenseMatrix.h:13
CUDA_HOSTDEV constexpr DenseMatrix< N, T > transpose() const
Matrix transposition.
Definition: DenseMatrix.h:41