Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.apo.nmsu.edu/Telescopes/coordConv/html/math_utils_8h_source.html
Дата изменения: Thu May 7 21:42:46 2015
Дата индексирования: Sun Apr 10 03:37:52 2016
Кодировка:

Поисковые слова: annular solar eclipse
lsst.coordConv: include/coordConv/mathUtils.h Source File
lsst.coordConv  unknown
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
mathUtils.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cmath>
4 #include <limits>
5 #include "Eigen/Dense"
6 #include "coordConv/physConst.h"
7 /*
8 Math utilities
9 */
10 namespace coordConv {
11 
12  // useful constants (especially useful in Python, since there is no other easy way to get to them)
13  const double DoubleEpsilon = std::numeric_limits<double>::epsilon();
14  const double DoubleMax = std::numeric_limits<double>::max();
15  const double DoubleMin = std::numeric_limits<double>::min();
16  const double DoubleNaN = std::numeric_limits<double>::quiet_NaN();
17 
24  double hypot(double x, double y);
25 
32  double wrapPos(double ang);
33 
40  double wrapCtr(double ang);
41 
49  inline double wrapNear(double ang, double refAng);
50 
52  inline double sind(double ang) { return std::sin(ang * RadPerDeg); }
53 
55  inline double cosd(double ang) { return std::cos(ang * RadPerDeg); }
56 
58  inline double tand(double ang) { return std::tan(ang * RadPerDeg); }
59 
61  inline double asind(double x) { return std::asin(x) / RadPerDeg; }
62 
64  inline double acosd(double x) { return std::acos(x) / RadPerDeg; }
65 
67  inline double atand(double x) { return std::atan(x) / RadPerDeg; }
68 
70  inline double atan2d(double x, double y) { return std::atan2(x, y) / RadPerDeg; }
71 
82  bool polarFromXY(double &r, double &theta, double x, double y);
83 
92  void xyFromPolar(double &x, double &y, double r, double theta);
93 
111  void rot2D(double &rotX, double &rotY, double x, double y, double ang);
112 
120  void computeRotationMatrix(Eigen::Matrix3d &rotMat, Eigen::Vector3d const &axis, double rotAngle);
121 
122 }
123 #include "coordConv/mathUtils.cc"
void xyFromPolar(double &x, double &y, double r, double theta)
Definition: mathUtils.cc:28
double tand(double ang)
tangent of angle in degrees
Definition: mathUtils.h:58
const double DoubleMax
Definition: mathUtils.h:14
double hypot(double x, double y)
Definition: mathUtils.cc:8
double wrapNear(double ang, double refAng)
Definition: mathUtils.cc:52
double cosd(double ang)
cosine of angle in degrees
Definition: mathUtils.h:55
double wrapCtr(double ang)
Definition: mathUtils.cc:33
const double DoubleNaN
Definition: mathUtils.h:16
const double DoubleEpsilon
Definition: mathUtils.h:13
bool polarFromXY(double &r, double &theta, double x, double y)
Definition: mathUtils.cc:14
double sind(double ang)
sine of angle in degrees
Definition: mathUtils.h:52
void rot2D(double &rotX, double &rotY, double x, double y, double ang)
Definition: mathUtils.cc:12
double atand(double x)
arctangent in degrees
Definition: mathUtils.h:67
const double DoubleMin
Definition: mathUtils.h:15
double atan2d(double x, double y)
arctangent2 in degrees
Definition: mathUtils.h:70
double asind(double x)
arcsine in degrees
Definition: mathUtils.h:61
const double RadPerDeg
Definition: physConst.h:19
void computeRotationMatrix(Eigen::Matrix3d &rotMat, Eigen::Vector3d const &axis, double rotAngle)
Definition: mathUtils.cc:33
double acosd(double x)
arccosine in degrees
Definition: mathUtils.h:64
double wrapPos(double ang)
Definition: mathUtils.cc:20