More 2d vectors features

Former-commit-id: d260aeb125cbefaefcadd375c148ce06e8ba96be
This commit is contained in:
Marek Nečada 2018-05-14 23:15:29 +00:00
parent 8123af47b3
commit 2b00af241e
1 changed files with 11 additions and 1 deletions

View File

@ -23,11 +23,21 @@ static inline cart2_t cart2_scale(const double c, const cart2_t v) {
return res; return res;
} }
static inline double cart2_dot(const cart2_t a, const cart2_t b) {
return a.x * b.x + a.y * b.y;
}
static inline double cart2norm(const cart2_t v) { static inline double cart2norm(const cart2_t v) {
return sqrt(v.x*v.x + v.y*v.y); return sqrt(v.x*v.x + v.y*v.y);
} }
static inline sph_t cart22sph(const cart2_t cart) {
sph_t sph;
sph.r = cart2norm(cart);
sph.theta = M_PI_2;
sph.phi = atan2(cart.y, cart.x);
return sph;
}
static inline double cart3norm(const cart3_t v) { static inline double cart3norm(const cart3_t v) {
return sqrt(v.x*v.x + v.y*v.y + v.z*v.z); return sqrt(v.x*v.x + v.y*v.y + v.z*v.z);