Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature-2.0' into feature-2.0-lo…
Browse files Browse the repository at this point in the history
…opspeed
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Mar 27, 2017
2 parents 13e7cd4 + 5d38bef commit 560260f
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions src/wrappers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -736,17 +736,17 @@ Eigen::Array<Scalar,M,N> Total(const std::vector<Eigen::Array<Scalar,M,N> >& v)
}

/// unit vector of length N into direction i
template <int N, int i>
constexpr Eigen::Matrix<double,N,1> UnitVector()
template <int N, int i, typename Scalar = double>
constexpr auto UnitVector() -> Eigen::Matrix<Scalar,N,1>
{
return Eigen::Matrix<double,N,1>::Unit(i);
return Eigen::Matrix<Scalar,N,1>::Unit(i);
}

/// unit vector of length N into direction i
template <int N>
constexpr Eigen::Matrix<double,N,1> UnitVector(int i)
template <int N, typename Scalar = double>
constexpr auto UnitVector(int i) -> Eigen::Matrix<Scalar,N,1>
{
return Eigen::Matrix<double,N,1>::Unit(i);
return Eigen::Matrix<Scalar,N,1>::Unit(i);
}

/// unit vector of length N into direction i
Expand All @@ -759,20 +759,20 @@ inline Eigen::VectorXd UnitVector(int N, int i)
}

/// matrix projector of size MxN into direction i, j
template <int M, int N, int i, int j>
constexpr Eigen::Matrix<double,M,N> MatrixProjector()
template <int M, int N, int i, int j, typename Scalar = double>
constexpr auto MatrixProjector() -> Eigen::Matrix<Scalar,M,N>
{
Eigen::Matrix<double,M,N> proj(Eigen::Matrix<double,M,N>::Zero());
Eigen::Matrix<Scalar,M,N> proj(Eigen::Matrix<Scalar,M,N>::Zero());
proj(i,j) = 1;

return proj;
}

/// matrix projector of size MxN into direction i, j
template <int M, int N>
constexpr Eigen::Matrix<double,M,N> MatrixProjector(int i, int j)
template <int M, int N, typename Scalar = double>
constexpr auto MatrixProjector(int i, int j) -> Eigen::Matrix<Scalar,M,N>
{
Eigen::Matrix<double,M,N> proj(Eigen::Matrix<double,M,N>::Zero());
Eigen::Matrix<Scalar,M,N> proj(Eigen::Matrix<Scalar,M,N>::Zero());
proj(i,j) = 1;

return proj;
Expand Down

0 comments on commit 560260f

Please sign in to comment.