![]() |
PRISMS-PF Manual
|
Functions | |
| template<unsigned int N, typename T> | |
| DEAL_II_ALWAYS_INLINE T | cos_arctan (const T &x) noexcept |
| Compute cos(N * arctan(x)). | |
| template<unsigned int N, typename T> | |
| DEAL_II_ALWAYS_INLINE T | sin_arctan (const T &x) noexcept |
| Compute sin(N * arctan(x)). | |
| template<unsigned int N, typename T> | |
| DEAL_II_ALWAYS_INLINE T | cos_theta (const T &nx, const T &ny) noexcept |
| Compute cos(N * theta) where theta = arctan(ny/nx). | |
| template<unsigned int N, typename T> | |
| DEAL_II_ALWAYS_INLINE T | sin_theta (const T &nx, const T &ny) noexcept |
| Compute sin(N * theta) where theta = arctan(ny/nx). | |
| template<unsigned int N, typename T> | |
| DEAL_II_ALWAYS_INLINE T | cos_psi (const T &nx, const T &ny, const T &nz) noexcept |
| Compute cos(N * psi) where theta = arctan(sqrt(nx^2+ny^2)/ny). | |
| template<unsigned int N, typename T> | |
| DEAL_II_ALWAYS_INLINE T | sin_psi (const T &nx, const T &ny, const T &nz) noexcept |
| Compute sin(N * psi) where theta = arctan(sqrt(nx^2+ny^2)/ny). | |
|
inlinenodiscardnoexcept |
Compute cos(N * arctan(x)).
This function provides an efficient way to calculate symmetries like $cos(N arctan(\theta))$, where N is a known number at compile time.
Importantly, it doesn't always make sense to unroll the function with a Chebyshev polynomial due to the crossover point in multiplication operations and using the math library. We've found this to occur at N = 3, although your mileage will vary based on your architecture. TODO: Benchmark this better
|
inlinenodiscardnoexcept |
Compute cos(N * psi) where theta = arctan(sqrt(nx^2+ny^2)/ny).
This function provides an efficient way to calculate symmetries like $cos(N arctan(\sqrt{n_x^2+n_y^2}/n_z))$, where N is a known number at compile time.
Importantly, it doesn't always make sense to unroll the function with a Chebyshev polynomial due to the crossover point in multiplication operations and using the math library. We've found this to occur at N = 5, although your mileage will vary based on your architecture. TODO: Benchmark this better
|
inlinenodiscardnoexcept |
Compute cos(N * theta) where theta = arctan(ny/nx).
This function provides an efficient way to calculate symmetries like $cos(N arctan(n_y/n_x))$, where N is a known number at compile time.
Importantly, it doesn't always make sense to unroll the function with a Chebyshev polynomial due to the crossover point in multiplication operations and using the math library. We've found this to occur at N = 5, although your mileage will vary based on your architecture. TODO: Benchmark this better
|
inlinenodiscardnoexcept |
Compute sin(N * arctan(x)).
This function provides an efficient way to calculate symmetries like $sin(N arctan(\theta))$, where N is a known number at compile time.
Importantly, it doesn't always make sense to unroll the function with a Chebyshev polynomial due to the crossover point in multiplication operations and using the math library. We've found this to occur at N = 3, although your mileage will vary based on your architecture. TODO: Benchmark this better
|
inlinenodiscardnoexcept |
Compute sin(N * psi) where theta = arctan(sqrt(nx^2+ny^2)/ny).
This function provides an efficient way to calculate symmetries like $sin(N arctan(\sqrt{n_x^2+n_y^2}/n_z))$, where N is a known number at compile time.
Importantly, it doesn't always make sense to unroll the function with a Chebyshev polynomial due to the crossover point in multiplication operations and using the math library. We've found this to occur at N = 5, although your mileage will vary based on your architecture. TODO: Benchmark this better
|
inlinenodiscardnoexcept |
Compute sin(N * theta) where theta = arctan(ny/nx).
This function provides an efficient way to calculate symmetries like $sin(N arctan(n_y/n_x))$, where N is a known number at compile time.
Importantly, it doesn't always make sense to unroll the function with a Chebyshev polynomial due to the crossover point in multiplication operations and using the math library. We've found this to occur at N = 5, although your mileage will vary based on your architecture. TODO: Benchmark this better