PLaSK library
Loading...
Searching...
No Matches
3d.hpp File Reference

This file contains implementation of vector in 3D space. More...

#include <iostream>
#include "../math.hpp"
#include "plask/exceptions.hpp"
#include "common.hpp"
#include "../utils/metaprog.hpp"
#include "../utils/warnings.hpp"
Include dependency graph for 3d.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  plask::Vec< 3, T >
 Vector in 3D space. More...
 
struct  plask::NaNImpl< Vec< 3, T > >
 Specialization of NaNImpl which add support for 3D vectors. More...
 
struct  plask::ZeroImpl< Vec< 3, T > >
 Specialization of ZeroImpl which add support for 2D vectors. More...
 

Namespaces

namespace  plask
 Patterson quadrature for complex function along specified line.
 
namespace  std
 STL namespace.
 

Functions

template<typename T >
constexpr Vec< 3, T > plask::conj (const Vec< 3, T > &v)
 Calculate vector conjugate.
 
template<typename T1 , typename T2 >
auto plask::dot (const Vec< 3, T1 > &v1, const Vec< 3, T2 > &v2) -> decltype(v1.c0 *v2.c0)
 Compute dot product of two vectors v1 and v2.
 
auto plask::dot (const Vec< 3, dcomplex > &v1, const Vec< 3, double > &v2) -> decltype(v1.c0 *v2.c0)
 Compute dot product of two vectors v1 and v2.
 
auto plask::dot (const Vec< 3, dcomplex > &v1, const Vec< 3, dcomplex > &v2) -> decltype(v1.c0 *v2.c0)
 Compute dot product of two vectors v1 and v2.
 
template<typename T >
constexpr Vec< 3, T > plask::vec (const T c0__lon, const T c1__tran, const T c2__up)
 Helper to create 3D vector.
 
template<typename T >
bool plask::is_zero (const Vec< 3, T > &v)
 Check if the vector is almost zero.
 
template<typename T >
plask::Vec< 3, T > std::sqrt (plask::Vec< 3, T > vec)
 
template<typename T , typename OtherT >
plask::Vec< 3, T > std::pow (plask::Vec< 3, T > vec, OtherT a)
 

Detailed Description

This file contains implementation of vector in 3D space.

Definition in file 3d.hpp.